home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
BUSINESS
/
PRTY15D2.ZIP
/
MANUAL.TXT
< prev
next >
Wrap
Text File
|
1993-11-22
|
235KB
|
4,428 lines
Parity
Technical Analysis System
Version 1.5
User's Guide
Copyright c 1991, 1992, 1993 Paul Rickert. All Rights Reserved.
The software described in this document is provided under the terms
of a license Agreement. Please read it carefully. The software may
be used or copied only upon acceptance and in accordance with the
terms of this agreement. Unauthorized use, duplication,
distribution, or disassembly is strictly prohibited by federal law.
Parity, Parity Plus, Price Painter, Mark It and The Display Matrix
are trademarks of ParTech Software Systems.
MetaStock, The Technician, and The Downloader are trademarks of EQUIS
International.
CompuTrac is a trademark of Compu Trac Software Inc.
OptionExpert is a registered trademark of AIQ Systems Inc.
TeleChart 2000 is a trademark of Worden Brothers, Inc.
ParTech Software Systems
Two Bryant Street, Suite 200
San Francisco, CA 94105
Tel: (415) 546-9316
Fax: (415) 546-9319
Printed in the United States of America
Table Of Contents
Part 1 Introduction 3
What Is Parity? 4
Parity and Shareware 4
About Parity Plus 5
System Requirements 5
Customer Support 6
Installing Parity 6
Price Data 7
Part 2 Basic Concepts 8
Charts 8
Groups 8
Studies 9
Batches 10
Clusters 10
The Display Matrixä 11
Profit Testing 12
Scanning and Filtering Securities in a Group 12
Part 3 The Tool Bar 13
The Tool Bar 13
Moveable Versus Fixed Tool Bar 13
Action Tools 14
Display Tools 15
Menu Shortcut Tools 16
Window Management Tools 16
Part 4 Menu Commands 16
File Menu 16
Edit Menu 17
Groups Menu 17
Load a Security 17
Create or Modify Group 19
Select a Group 20
Reorder a Group 21
Save All Groups 22
Delete Groups 22
Display Group or Security 22
Import Other Formats 22
Studies Menu 25
Study Commands 25
Create/Modify Current Study 25
Formula Editor 26
Pane Layout Editor 28
Color Editor 30
Options Editor 30
Action Editor 31
Select a Study 32
Save All Studies 32
Delete Study 33
Import Study From Disk 33
Export Study To Disk 33
Display Current Study 33
Batch Studies 33
Select a Batch 34
Reorder Batch 34
Save All Batches 34
Delete Batch 34
Clusters Menu 35
Make a Cluster 35
Select a Cluster 35
Save All Clusters 35
Delete Cluster 36
Display Current Cluster 36
Pointer Menu 36
Options Menu 37
Default Study 37
Chart Preferences 38
Directory and File Preferences 38
Tool Bar Options 39
Window Menu 39
Help Menu 40
Part 5 Indicators & Chart Procedures 40
Technical Indicators 41
List of Predefined Technical Indicators 41
Bibliography of Technical Analysis Texts 43
Definition and Interpretation of Technical Indicators 43
MetaStock Function Compatibility 45
Procedures vs. Functions 46
Chart Procedures 46
Point and Figure Charts 48
The Point and Figure Procedures 49
Adding Lines to a Chart 51
Part 6 Formulas, Operators & Functions 52
User Defined Custom Formulas 52
Arrays versus Scalars 54
Predefined Variables 56
Operators, Parenthesis and Mathematical Precedence58
Arithmetic Operators 58
Comparison Operators 58
Logical Operators 59
Trigonometric Functions 59
Exponential Functions 60
Rounding Functions 60
Array Related Functions 61
Statistical Functions 61
Date Functions 62
Pattern Recognition Functions 63
ForLoop Function 64
Part 7 File Formats Supported 66
The MetaStock/CompuTrac Format 67
ChartPro File Format 67
Comma Separated ASCII Files 68
TeleChart 2000 Files 69
Part 9 Odds and Ends 69
Printing Charts 69
The Data Microscope 71
Windows 3.0 System Resources 71
System Requirements and Execution Speed 72
Problems and Solutions 73
The Hour Glass Cursor 73
Incomplete Charts and System Resources 73
Appendix 74
Data Vendors 74
Other Resources 77
Part 1 Introduction
Welcome to the Parity Technical Analysis System. This User's Guide
is a comprehensive guide to all of the features and procedures
offered by the Parity software. Most of the text of this manual is
also available through Parity's on-line Help files. You can access
Parity's help at any time by pressing F1 or by clicking on the Help
button on most of Parity's forms and dialog boxes.
We strongly recommend that you read the Basic Concepts and The Tool
Bar sections of the manual and follow the brief tutorial described in
the "Getting a Head Start" section of the READ_1ST.TXT file included
in your Parity Installation Disk. This should give you enough of an
overview to permit you to quickly become productive using Parity.
The Menu Command sections are a reference to all the commands that
are available from Parity's Menu Bar. You will benefit from a
careful reading of the Create/Modify Current Study section and the
detailed description of each of the Study Editors which follows.
More advanced users should skim through the Indicators and Chart
Procedures section to get a sense of the full range of tools Parity
gives you for creating charts incorporating a wide variety of
technical indicators and chart types. The Technical Indicators
section also includes a bibliography for the best technical analysis
books we have found. We strongly recommend John Murphy's "Technical
Analysis of the Futures Market" for a beginning text, and Perry
Kaufman's "The New Commodity Trading Systems and Methods" for a
comprehensive overview of technical analysis. These books are
excellent for the analysis of stocks as well as commodities.
Part 6, Formulas, Operators and Functions, is designed as a reference
guide to the various functions and operators which are available to
you when you want to chart your own formulas and indicators. This
section assumes a fair amount of knowledge about standard math and
computer notations and conventions. You will probably want to ignore
this part of the manual until you are ready to start creating
formulas which express your own ideas about the best ways to analyze
price data.
Part 7, File Formats Supported, discusses the four data file formats
that Parity supports directly and provides some tips about the merits
of each.
Part 9, Odds and Ends, includes some general comments about printing
charts with Parity and some of the program's idiosyncrasies.
As you use Parity please remember that when you make a mistake in a
formula you are trying to chart, Parity will seem to "freeze up" and
the mouse cursor will be locked into an hour glass shape. Just hit
the up arrow key and you can proceed normally. Occasionally an error
may occur when you have a form or dialog box open. Normally you can
recover by pressing the up arrow key and closing the dialog box by
double clicking on the control menu box in the upper left hand corner
of the dialog box window. This may indicate a bug in the program and
we would appreciate it if you would report it to us.
What Is Parity?
Parity is a Stock Charting and Technical Analysis Program designed to
take full advantage of the Windows Graphical User Interface. The
program permits the user to design sophisticated charts of stock
price data using a wide range of technical indicators and tools.
Parity's charting capabilities permit you to graph a security's
price, volume and up to nine indicators in a single chart using any
combination of stacked or overlapping panes, each of which can
include one or more indicators.
Parity incorporates traditional Open, High, Low, Close charts, Line
and Bar charts, Japanese Candlestick charts, Point and Figure charts,
Equivolume charts, Horizontal Bar charts, and a Price at Volume chart
which is similar to The Crocker Chartc.
The program includes over 50 of the most popular predefined
indicators plus a wide range of math and statistical functions.
These indicators and functions can be combined in user defined
formulas.
The most innovative aspect of Parity is its unique use of Groups of
Stocks, Batches of Studies, and Clusters of Charts in order to
simplify the analysis of a large number of securities at one time.
In order to manage the profusion of sophisticated charts you can
design with Parity, virtually all of its settings can be saved to
disk and recalled for another Technical Analysis Session.
In addition, Parity provides a graphical Display Matrix that permits
the user to easily jump from stock to stock and study to study.
Parity Plus, the enhanced retail version of Parity, includes
sophisticated profit testing and optimization tools that let you test
your trading strategies against all the securities in a group. You
can summarize the results of a profit test for an entire group or
examine summary and transaction details or drill down to daily
details for every security in the group. Parity Plus even lets you
chart the cumulative profit and profit by position against price.
With Parity Plus's scanning and filtering features you can generate a
custom report showing the values of any indicators or user defined
formulas you want for all the stocks in a group or screen for only
those securities that meet your conditions.
Parity and Shareware
Parity is distributed as Shareware. Parity is not free or public
domain software. Shareware permits you to try Parity before you buy
the software. However if you continue to use Parity you must
Register the software by paying the current licensing fee.
Shareware provides a good channel for a software vendor to distribute
its products without incurring the high marketing costs involved in
normal commercial distribution of software. These cost savings are
passed onto the user through the lower cost of Parity compared to
other "commercial" technical analysis programs. Our goal is to make
Parity the finest technical analysis program you can buy anywhere.
In addition to the ability to "try before you buy", Shareware also
permits us to make more frequent updates to Parity than would be
possible with retail software. The most recent version of Parity
will always be available on the INVFORUM of CompuServe or through our
BBS at (415) 751-1763. We will also send you the most current
version of Parity if you send us your credit card number or a check
for $5 to cover the cost of shipping and handling.
Feel free to "share" the evaluation version of Parity as long as you
follow the guidelines in the LICENSE.TXT file included with the
program. However, you may not share the registered version of Parity
or Parity Plus.
About Parity Plus
Parity Plus is the Enhanced Retail Version (ERV) of Parity. Parity
Plus is only available directly from ParTech Software Systems or our
designated distributors. In addition to all of the great features of
the shareware version, Parity Plus includes advanced features such as
Profit Testing, Optimization, Stock Filtering and Scanning, Cycle
Analysis, Data and File Maintenance, and Data Conversion.
In this documentation we use Parity Plus and Parity interchangeably.
Parity Plus is a unique and separate program with different features
and a totally different distribution structure and license agreement
from the shareware program Parity. Our use of the name Parity in
this documentation or the help files, to refer to the program Parity
Plus, in no way changes the seperate license agreement for Parity and
Parity Plus or our copyright rights etc.
The current price for Parity Plus 1.5 is $179 plus shipping and
taxes. Registered users of Parity will be able to upgrade to Parity
Plus at any time by paying the difference between the current price
of Parity Plus and their registration fee for Parity.
System Requirements
To run Parity you need the following hardware and software:
An IBM Personal Computer or true compatible. We recommend
your PC have an Intel 80386 or faster processor.
At least 4 megabytes of memory configured as extended memory
(XMS). We recommend 8 megabytes of memory.
At least 2 MB of free hard disk space.
A VGA or higher video board. We recommend running Parity at
1024x768 screen resolution.
IBM DOS or Microsoft MS-DOS Version 3.0 or higher.
Microsoft Windows 3.0 or later. Microsoft Windows 3.1 is
strongly recommended.
A Microsoft compatible mouse.
Intel math co-processors are optional but recommended.
If you experience problems installing or running Parity we recommend
that you refer to the READ_1ST.TXT file for a complete discussion of
all the known hardware problems we have encountered.
Customer Support
Registered users of Parity and Parity Plus are entitled to 90 days of
free technical support by phone or E-Mail. Before you contact us we
recommend that you first consult the User Guide or On-line Help and
then sit back and think about the problem for a moment. Those two
steps would solve close to 90% of all the customer support questions
we receive.
If you still need our help we strongly recommend that you send us E-
Mail describing your problem as completely as possible. You can send
us E-Mail through the following services which we check frequently:
The Internet: 76655.2570@compuserve.com
CompuServe: 76655,2570
GEnie: RICKERT
Prodigy: GKHK06A
We have also started a dedicated Electronic BBS for Parity users
where you can exchange files, tips, and ideas as well as get
technical support. Our BBS number is (415) 751-1763.
If you don't have access to one of the On-line services listed above
or feel you need to talk with someone in person you can phone us at
(415) 546-9316 from 9:00 AM to 5:00 PM, Pacific Time, Monday through
Friday. Please note that we will not return technical support calls
from unregistered users.
Faxes and regular mail receive the lowest priority when it comes to
technical support and we suggest you avoid them unless you feel that
your problem needs to be illustrated on paper.
Installing Parity
The complete Parity program consists of several types of files.
Which are detailed in the PACKING.LST file.
All of the files listed are required for the initial installation of
Parity. However for any subsequent installation of an updated
version of Parity on the same machine be very careful not to
overwrite the *.DAT files you have created.
Initial Installation
Parity is distributed on a single 5 1/4" or 3 1/2" high density
diskette. If this is your initial installation of Parity, please
follow the directions below. Otherwise see the Subsequent
Installations section.
1 Start Windows and insert the diskette in drive A or B.
2 From the File Menu of the Program Manager select Run. Type in
the floppy diskette drive and INSTALL.EXE, i.e. A:INSTALL.EXE,
and hit ENTER.
3 Parity will create the installation form shown below. If this
is a first time installation you should let Parity install the
sample data files and the sample configuration files. If this
is not a first time install uncheck these options to avoid
overwriting any files you have created with a previous version
of Parity. When you are happy with the options you have chosen
click on Continue and Parity will automatically install itself.
4 After Parity has been installed we urge you to read the
READ_1ST.TXT file and the README.TXT files which were copied to
your Parity directory. You can use the Notepad or Write
accessories that came with Windows 3.x to read these files.
Parity's installation routine will create a RLZRUN10 directory under
your Windows directory and a C:\PARITY directory by default. It will
not modify your WIN.INI, AUTOEXEC.BAT or CONFIG.SYS files in any way.
Subsequent Installations
If you are installing an upgraded version of Parity follow the
appropriate installation procedure as outlined above. However it is
very important that in step 3 you uncheck the Sample Data Files and
Sample Configuration Files options before you proceed with the
installation. If you don't do this you may overwrite the *.DAT files
which contain the definitions of the Studies, Groups, Batches and
Clusters etc. that you have created. We suggest you make backup
copies of these *.DAT files regularly. If you are upgrading from the
shareware version of Parity you should manually copy the PROFTEST.DAT
and the SCANS.DAT files to your Parity directory.
Always check the READ_1ST.TXT and README.TXT files for more up-to-
date information.
Price Data
Parity is compatible with 5 or 7 field MetaStock/CompuTrac data
files, ChartPro/MegaTech data files, Comma Separated ASCII files, and
TeleChart 2000 files. Daily, weekly and monthly data in these
formats are widely available from various on-line and data disk
services.
Parity also permits you to import price data from Excel 2.1 and 3.0
files, Lotus 123 WKS files, Comma Separated Values text files and Tab
Separated Values text files. Data from these file formats cannot be
included in the definition of a Group but can be charted in the same
fashion that Load a Security permits you to chart a single stock.
See Import Other Formats for more information.
Parity Plus includes a complete set of utilities for file and data
maintenance and data conversion. Parity does not include any
utilities for downloading price data files. A number of commercial
and shareware programs provide these functions. An excellent program
for updating MetaStock or ChartPro data files from ASCII text files
of price data and for downloading prices from CompuServe or GEnie is
the Personal Ticker Tape (PTT). PTT is shareware and the most recent
version is always available by calling the FlexSoft BBS at (510) 829-
2293. See the Appendix for more information on different data
vendors.
Part 2 Basic Concepts
The Basic Concepts section of the User Guide explains some of the
more innovative terms and concepts which give Parity its power. Like
most technical analysis programs, Parity permits you to chart a
single stock with a single indicator. However, the real usefulness
of Parity comes from its unique ability to chart "Groups" of stocks
using predefined "Studies" which include multiple indicators and very
flexible chart formats. These features are summarized below.
Charts
A price chart created by Parity has many different components, most
of which are defined by the user in a Study.
Every chart includes one or more panes. A Pane is an area of the
chart where you can plot price or indicator data. A pane can include
up to 11 different data arrays including stock prices and trading
volume. Parity permits you to define up to 11 individual panes.
Panes are "transparent". They can be stacked or overlaid and their
size can be set relative to other panes and the size of the total
chart. Any number of panes can be overlaid and each overlaying pane
maintains its own scale. A pane's scale can be displayed on the left
axis, the right axis or not displayed at all.
Stacked panes can be separated in order to show the end values of the
scales more clearly. By default a pane will be separated by 5% of
the total chart size.
Each pane has its own vertical and horizontal grid that can be
displayed or hidden.
Individual indicators within a pane can have a label defined by the
user that displays in the same color as the indicator.
The user can set a title for the chart that automatically includes
the Security Name and the Study Name used to create the chart. This
title is displayed in the chart window's Title Bar and can also be
added to the top of the chart itself.
The user can also control the number of days between tick marks on
the X axis.
You can use the tools in the Tool Bar and the Pointer Menu to draw
various types of lines in a chart, zoom in on the data, and add text
anywhere in the chart.
Groups
While Parity can load price data for a single security at a time, a
powerful feature of the program is its ability to define a Group of
securities that can be displayed in any sequence using the Display
Tools.
A Group is a list of security price data files, in any supported
format, located in any directory, on any disk. You might prefer to
think of a Group as a portfolio of stocks or a list of ticker
symbols.
Parity permits you to mix data files in different directories, in
different formats, and of different sizes within a single Group.
Parity stores all of the information necessary to locate and import a
data file in the Group definition. Since a single Group can only
contain 64KB of characters the maximum number of securities in a
group depends on the size of the data file's path. Even with a long
path a Group will hold about 900 securites and if all your files were
in the root directory you could create a group with as many as 1800
securities.
The User can define an unlimited number of Groups, each of which has
a unique name with up to 16 characters.
Group definitions can be edited, reordered and deleted at any time.
All defined Groups can be saved to disk for reuse in subsequent
sessions. Group definitions are stored in the GROUPS.DAT file in the
Parity directory on your disk.
Visually, the securities in a Group define the vertical axis of the
Display Matrix.
Studies
A Study defines how Parity will chart an individual security,
regardless of which security is chosen.
Parity permits the user to define the following aspects of a chart.
How the price data is displayed, i.e., HLC bar chart or Japanese
candlestick chart.
Where and whether volume is displayed.
What indicators and formulas are plotted on the chart and where.
How individual panes are stacked and overlapped and what their
relative sizes are.
Whether to set a pane's scale to Maximize Y Axis, or Optimize
Scale Labels.
Which side of the Y axis scale labels are displayed on.
What colors to use for the chart.
What labels to use for each data array plotted.
The number of days between ticks on the X axis.
How to label the chart with the Security Name and/or the Study
Name.
Whether to include the chart title at the top of the chart as well
as in the title bar of the chart window.
What "actions" to perform depending on the specific price data
charted and condition set with the study.
A Study is defined using the Create/Modify Current Study selection in
the Studies Menu. Each Study can have up to a 16 character name and
all Studies can be saved to disk for subsequent sessions.
Batches
A Batch is analogous to a Group of stocks. However, instead of
defining which stocks will be displayed, a batch defines a list of
studies that will be displayed.
The concept of a "Batch of Studies" is a novel idea. Unlike other
stock charting programs, Parity permits you to define an unlimited
number of studies. One study might just show a Candlestick chart of
a stock with some moving averages. Another study might plot all of
the components of Welles Wilder's Directional Movement Index. A
third study might only show volume related indicators, while a fourth
study might include oscillators like MACD, Chaikin's Oscillator or
Stochastics.
Parity permits you to define a Batch of any or all of these studies.
When you select a Batch, Parity displays each of these studies in
sequence on a single security or each stock in a Group.
Selecting a Group of stocks and a Batch of studies creates a two-
dimensional Display Matrix, where the stocks form the vertical axis
and the Studies make up the horizontal axis. It may help to think of
the Display Matrix as a graphical spreadsheet with individual stocks
as the rows and studies as the columns. Each cell of the
"spreadsheet" is potentially a chart.
Depending on the Display Tool you select, you can move through the
Display Matrix vertically - looking at the same study on dozens of
different stocks, or horizontally - looking at multiple studies on a
single stock. By selecting a different display tool you can
instantaneously change direction.
Clusters
A Cluster defines the screen configuration for displaying multiple
Studies at one time. Like a Batch, a Cluster is a list of individual
Studies. However, a Cluster displays all of the Studies at once in
your predefined screen configuration.
You can use a Cluster with a Group of stocks, or when you load
individual securities. Use the forward and reverse display tools to
display the Cluster for each security in the Group.
To define a Cluster, first arrange charts of each of the Studies you
want to include in the Cluster on the screen. Make sure that each
chart is positioned and sized the way you want it reproduced when you
display the Cluster. Then select the Make a Cluster menu item and
enter a name for the Cluster. Note that Parity automatically
excludes any "UNNAMED" or "DEFAULT" studies from a Cluster.
You can save the definition of all of your Clusters to disk for reuse
in subsequent sessions. Parity creates a CLUSTERS.DAT file in its
directory that is automatically loaded the next time you start the
program.
Since all the charts in a Cluster are erased when you move up or down
in a Group, the Fast Forward and Fast Reverse tools are meaningless
and are disabled.
The Display Matrix
Parity offers the user the possibility of creating dozens of types of
charts on hundreds of individual securities through the use of its
Group and Batch features. In order to manage this potential
complexity we created an intuitive and easy to use tool we call the
Display Matrix.
The Display Matrix Concept
Conceptually, the Display Matrix is a two dimensional array of all
the charts you could create from the individual stocks in a group
combined with the individual studies in a batch.
It is easiest to think of this two dimensional array (the "matrix")
as being similar to a spreadsheet. Each cell of the spreadsheet
corresponds to a chart.
The rows of the spreadsheet are the price data for each security in
the group. The columns of the spreadsheet are the studies that are
used to plot that price data. The intersection of each row and
column, i.e., the cell, corresponds to a unique chart created by
combining the price data for the security in that row, with the
definition of the study in that column.
Unlike a spreadsheet, most of the charts/cells in the Display Matrix
aren't displayed. Even more importantly, only one chart at a time is
"current" in the sense that you can retrieve numeric data from it.
What Do We Mean by "Current"?
At any given time Parity can only have one of each type of "thing" in
memory. By "thing" we mean the data from one stock, the settings
from one study, and the definition of one group and one batch. So,
for example, when we talk about the current group we mean that one
group whose list of securities is currently available to define the
vertical axis of the Display Matrix.
The only time that having just one of each type of thing in memory
limits us is when we want to use the Data Microscope on a chart to
see the numbers behind the scene. Then we are limited to the
"current" chart, i.e., the one for which Parity still has the price
data and study settings stored in memory.
The Display Matrix Tool
Parity's Display Tools visually correspond to the conceptual display
matrix. When you move from one stock to another, you are moving up
and down the vertical group axis of the spreadsheet. When you move
from one study to another you move left and right along the
horizontal axis of the spreadsheet. When you select a Display Tool,
you tell Parity how to interpret the Forward and Reverse tools, when
it creates new charts.
With the Display Matrix Tool you can position yourself anywhere
within the Display Matrix. Your current location is shown by the
intersection of the current study and the current security. By
clicking on any cell in the matrix you can immediately reposition the
current study and current security. You can select from the drop
down list boxes to do the same thing. The Display Matrix Tool
doesn't affect the display state you selected by clicking on one of
the display tools, it simply repositions you within the matrix.
Profit Testing
Parity Plus includes sophisticated profit testing features which
permit you to define a technical trading strategy and test that
strategy against your historical data. Parity Plus lets you run a
profit test on a single security or on all the securities in a group.
Profit test parameters let you specify a wide range of trading prices
and share purchase methods to closely simulate your actual trading
strategies. You can examine the results of your profit test at
several different levels of detail including tables which show all
the trades for a security, a summary of trades for the security, or a
summary for all the securities in a group. You can even show a table
of the daily details for all the Formulas, Conditions, and Rules for
the profit test.
Parity's ability to create a chart showing stock price, position
status, cumulative profits, and profits per position each security
you test is another powerful feature. If you need to analyze your
strategy in more detail you can incorporate the results of your
profit tests in a study using the ChartProfitTest() chart procedure.
Perhaps the most common problem technicians encounter is what value
to use for their favorite technical indicators. For example, are 40
day moving averages more predictive than 50 day moving averages or is
the best value some place in between? To help answer these
questions, Parity Plus includes a powerful optimization tool which
lets you specify a range, and step value, for up to five variables
you might want to test. Using optimization you might set the value
of the OptVar1 variable to range from 30 to 50 in steps of 2 units.
When you run an optimized profit test, Parity substitutes the
appropriate value for the variable for each run through a group.
When testing is completed Parity Plus shows you a table with the
results of each iteration through the range you are optimizing for
and lets you sort the results for total return. Using this approach
you can quickly and automatically determine the optimum values to use
in your indicators.
Parity Plus lets you name and save an unlimited number of profit
tests in exactly the same way you use groups, studies, or batches.
You can select a new profit test at any time and run that profit test
against the current group, or the current security.
Scanning and Filtering Securities in a Group
Every investor faces the challenge of staying on top of hundreds of
pieces of new information each day and still having time to find and
focus on the best securities for right now. Parity Plus' filtering
and scanning tools let you rapidly sift through dozens or even
hundreds of stocks to find the ones that meet the criteria you have
defined.
You define a filter or a scan just like you would a profit test.
First you specify the formulas and technical indicators you are
interested in. Then you determine what, if any conditions, the
securities in the group have to meet to be included in your results.
You can name and save an unlimited number of scans and run them
against any group you have defined.
When you run a scan on a group Parity generates a report which shows
the ending values for all the indicators and formulas you specified
and sorted in the order you choose. If you specified a set of
conditions the securities had to meet in order to be included in the
scan then only those securities that met your criteria will be shown.
You can print the results of a scan or save them to a file for
further analysis.
After you have run a scan you can create a new group which only
includes the securities that met your filter or screening criteria.
Then you can chart this new group with any study, batch or cluster
you have defined to closely examine each of these securities as a
possible investment.
Using Parity Plus's scanning and filtering tools it is possible to
quickly and efficiently analyze hundreds of securities each day and
only spend time on the few that meet your investment standards.
Part 3 The Tool Bar
The Tool Bar
The Tool Bar incorporates most of the tools that are used to display
and manipulate charts after you have selected whatever Stocks,
Groups, Studies, Batches or Clusters you want displayed. Several
less frequently used tools can be accessed through the Pointer Menu.
Moveable Versus Fixed Tool Bar
By default, the Tool Bar is in a fixed position on the right side of
the screen. The default setting leaves a space for the vertical
scrollbar which will appear if you drag a chart partially off the
screen. The Tool Bar can be set to be moveable with the Moveable
Tool Bar command on the Options Menu. You can also select the Flush
Right or Flush Left settings to choose a fixed tool bar that is
aligned all the way to the right or left of the screen.
You can also use the Moveable Tool Bar and Fixed Tool Bar commands to
recreate the Tool Bar if it gets mispositioned. This can happen when
you have a fixed tool bar and have moved charts off the screen and
then do a Window Cascade or Window Tile command.
Normally, though, the Tool Bar is simply hidden under a chart. You
can bring the Tool Bar forward by clicking in a chart or selecting
TBar in the Window Menu. To hide the Tool Bar behind a chart, click
in the chart's title bar.
Action Tools
Click on the tool and then click on the chart you want to act on.
These tools are "sticky" and stay active until you select another
action tool . The Pointer Menu includes a selection of some less
frequently used action tools (see page 38).
Tool Description
Print Tool Prints the chart you click on. Since the Print
Tool gives you much greater control over the
printing of a chart you should always use it in
preference to the File Print command. After you
select the Print Tool, and adjust the printer
setup, simply click on the charts you want to
print. See Printing Charts (page 73).
Trash Can Tool Closes the chart you click on or all of the open
charts.
Data Microscope Displays price and indicator data for the most
recently created chart and can print the data or
export it to an Excel, Lotus 123, or text file.
See the Data Microscope section for more details
(page 73).
Pointer Tool Resets the other action tools and goes to a
neutral pointer mode.
Text Tool Used to add text on a chart. The text you type
is centered directly above the point you click
on in the chart.
1:1 Magnifying Glass Restores chart to fully expanded state.
+ Magnifying Glass Zooms in on a chart to focus more closely
on a date range. Each use expands the chart to
roughly 1/3 its previous data range. By default
Parity will not rescale the vertical Y axis of
the chart for the new data range. However you
can use the Chart Preferences command (see page
40) to select automatic rescaling of the Y axis
on zooming. Unfortunately, automatic rescaling
does involve some tradeoffs which are discussed
in more detail in the Chart Preferences section.
- Magnifying Glass Opposite of + Magnifying Glass
Vertical Line Tool Draws a vertical line the entire height of
the chart wherever you click.
Horizontal Line Tool Draws a horizontal line the entire length
of the chart wherever you click.
Limited Line Tool Draws a line between any two points you
click on.
Extended Line Tool Draws a line defined by any two points and
extending to the chart boundaries.
Display Tools
Used to select the Display State and Direction used to move through
the Display Matrix. After you select a new study or batch you must
click on one of the Display Tools to chart it when the "Always
Display Charts" option in the Chart Preferences dialog is off.
Tool Description
Display Matrix Tool Shows a graphical depiction of the
Display Matrix and the Current Chart's
position in it. Click on the grid of the
Display Matrix or select from the drop down
list boxes to reposition yourself within the
Display Matrix. See The Display Matrix
section.
Forward & Reverse Tools Used to move through the Display
Matrix in the direction indicated by the
Display State tools. If the next chart in
the direction already exists these tools will
bring it to the front. Otherwise the next
chart is created from scratch.
Fast Forward & Reverse Used to create multiple charts at a
time. Clicking on one of these tools causes
Parity to create the maximum number of charts
in the current direction. The number of
charts was defined when you selected a group.
If you specified "Print Each Chart as
Displayed" when you selected the group the
Fast Forward Tool can be used to print all
the charts in a group.
Display Group Tool This sets the display state to vertical
movement between securities in a group. It
causes the current graph in the Display
Matrix to be created if it isn't already
displayed.
Display Batch Tool This sets the display state to
horizontal movement between studies in a
batch. It causes the current graph in the
Display Matrix to be created if it isn't
already displayed.
Display Group on Batch This sets the display state to move
through the Display Matrix showing all the
studies in a batch for a security in a group
before moving up or down to the next security
in the group.
Display Batch on Group This sets the display state to move
through the Display Matrix showing all the
securities in a group before moving left or
right to the next study in a batch.
Menu Shortcut Tools
The Menu Shortcut Tools provide the same functionality as the menu
commands for loading a security, selecting a group, editing a study,
and selecting a batch. These commands also have function key
shortcuts. See the Menu Commands section of this manual for more
detail on these commands. By default Parity creates a new chart
after you use these tools. To disable the automatic charting use the
Chart Preferences command on the Options menu to set your display
preferences.
Load a Security
Select a Group
Create/Modify Current Study
Select a Batch
Window Management Tools
The Window Management Tools provide the same functionality as the
Window Menu Cascade and Tile commands.
Tool Description
Tile Windows Works exactly like the Window Menu Tile
selection; it tiles all the displayed charts.
Cascade Windows Works exactly like the Window Menu Cascade
selection; it cascades all the displayed charts.
Part 4 Menu Commands
This section of the User's Guide reviews all of the Menu Commands
that are available in Parity. Most of the Tool Bar tools do not have
any equivalent functionality from the Menu or the Keyboard.
File Menu
The File Menu has relatively limited functionality in Parity since no
files are "opened" in the traditional Windows sense. Instead use the
appropriate commands in the Groups, Studies, and Clusters menus to
select the items you want to chart.
Command Description
Close Will close the currently selected chart. Generally
it will be easier to close a chart by double
clicking on the Control-Menu box or using the trash
can tool.
Save As Can only be used to save the contents of the Print
Log to a file. You must save studies, groups,
batches, and clusters using their respective Save
All commands.
Print Will print the currently selected chart using
default settings. Generally you should use the
Printer Tool instead. See Printing Charts.
Printer Setup Standard Windows 3.x Printer Setup dialog.
Exit Exits Parity. If you have any unsaved groups,
batches, studies, or clusters Parity will ask if
you want to save them.
Edit Menu
The Edit Menu provides the standard Edit functionality common to most
Windows 3.x applications and they will not be discussed here. Most
of these selections will be disabled except when you enter text in a
dialog box or use the print log.
Command Description
Copy Window The Copy Window menu item will copy the currently
selected chart to the Clipboard. You can paste the
chart into most word processors or into a
paintbrush program. If you hold down the shift key
while you issue this command the title bar of the
window will also be copied to the clipboard.
Groups Menu
The Groups Menu provides all of the commands to load one security, or
to create, select and modify a Group of securities.
Load a Security
The Load a Security command permits you to select and load a single
security for charting using the current study. Loading a security
overwrites the current group if one had been selected.
This command consists of two dialog boxes:
Load a Single Security
This dialog permits you to select a security by symbol or name for
loading. Parity will display all the files in the directory you have
chosen which match the file format criteria. If the file format
permits it, the file will be displayed with additional information
such as company name and data period. To select a security for
loading, highlight the security and click OK or double click on the
security.
Change directories by double clicking on the directory you wish to
change to in the directories list box.
Parity supports four different data file formats, 5 or 7 field
MetaStock/CompuTrac files, 7 field ChartPro/MegaTech files, Comma
Separated Values ASCII files, and TeleChart 2000 files. You can
select which file format to use with the "File Format" drop down list
box. The Available Securities list box will be automatically updated
to show the securities with that format in the directory you
selected. To save your file preferences from session to session, use
the Directory and File Preferences command on the Options Menu. For
more information on these formats, see the File Formats Supported
section.
To quickly move to a particular security, just select any security
with a single click of the mouse and then type the first letter of
the file or security name. If no file starts with that letter
nothing will happen, otherwise you will move to the first file
starting with that letter. This is standard Windows 3.x
functionality and you can use this method with any list box.
Range of Data to Load
This dialog permits you to select which data records in a file will
be loaded. You can also set the chart size to be maximized within
the "working" screen area. If you manually maximize a chart by
clicking on its maximize icon it will "snap" back to its default size
whenever another form, chart or window is opened over it.
You can specify the number of blank periods that you want added to
the right of the chart by entering a positive number in the "Blanks
Added to the Right of Chart" box. This is useful if you want to draw
extended trendlines into the future.
The range of records to load can be specified in several ways.
Range of Records Description
Absolute Record Number Specify the number of the record in the file.
The First Record is the oldest record to be loaded
and has to be an integer greater than or equal to
1. The Last Record is the most recent record to be
loaded and must be an integer greater than the
first record and less than or equal to the total
number of records. By default, Parity will load
all of the records in the data file. There is no
limit on the number of records you can load.
Relative Record Position Permits you to select a range of records
to load relative to the most recent record in the
file (the Last Record). Indicate relative record
positions by using negative numbers that count back
X records from the last record. If you enter a
relative record position for the first record,
e.g., -100, Parity will set the Last Record to 0.
In this example a total of 101 records will be
loaded starting with the most recent record and
counting back 100 records. Hitting enter after
inputting a relative record position in the First
Record field will execute the dialog box.
Absolute Date Range Enter the dates you want to load data for.
Dates must be formatted as MM/DD/YY or YYMMDD.
When you enter a date for the first record, Parity
will automatically set the last record to the last
date in the file. You may not mix dates and record
numbers or relative record positions.
Compression Parity gives you two options you can use to
"compress" your data files into weekly or monthly
formats. If you select the "True Weekly" option,
Parity will use the highest and lowest values, the
total volume, and Friday's closing price to create
its weekly data. The "True Monthly" option works
in the same way. The first and last data points
may be partial weeks if a full weeks data doesn't
exist.
Create or Modify Group
The Create or Modify Group command defines a new group or modifies
the contents of an existing group. A group is a list of securities
in any of the supported data formats, located anywhere on your disks.
The actual number of securities a group can contain depends primarily
on the length of the path of the data files, and for MetaStock files
the lengths of the symbol and name of each security. The total size
of a group is 64KB of characters. On average each entry for a data
file in the root directory will be 35-40 characters so the largest
possible group is 1600 to 1800 securities. However, if your data
files have a very long path, for example,
C:\PARITY\DATAFILE\STOCKS\CONSUMER then the maximum size of your
groups will be only 900-1000 securities. You can define any number
of groups.
Dialog Form Items Description
Groups This box lists all of the defined groups currently
in memory. Double clicking on a group will add all
of the securities in that group to the Securities
in Group list. To modify an existing group double
click on its name to add its stocks to the
Securities in Group list. Make any modifications
you want and save it under the same name.
Securities in Group This box lists all of the securities you have
selected to be in the group. Add securities by
double clicking on an available security or an
entire group. To delete securities from the group,
double click on the security in the group.
Available Securities Lists all the securities of the specified data
type that are available in the selected directory.
Double click on any available security to add it to
the group. Type the first letter of a security to
search the list for it.
Add All Securities Clicking on this button will cause all the
securities in the available securities list box to
be added to the group.
Directories Lists all the directories on your disk. To move
around the directory tree simply double click on
the directories or drives that are listed. The
Available Securities list will be updated for the
directory you select.
New Group Enter the name of the group you are creating or
modifying in this text box. The name can contain
16 significant characters including A-Z, a-z, 0-9,
%, _, $, !, and %. Names cannot begin with a
number and are not case sensitive.
Double Click Action Selects the effect of double clicking in the
list boxes. By default double clicking will add or
remove securities from the Securities in Group
list. Selecting Show Details will cause double
clicking on a security to list any available
details on the data file. ChartPro data formats
contain very little information on the underlying
security.
File Format Selects the data file format Parity looks for in
the selected directory. Only files from one data
format at a time can be displayed in the Available
Securities list. Note that you can mix files of
any format in a group.
Sort Available Securities By default Parity sorts the Available
Securities list by symbols. You can also sort
certain file formats by name. This option is
disabled for ChartPro and ASCII files.
Sort New Group When you click on the Sort New Group button the
Securities in the Group will be sorted by their
Name or Symbol depending on which radio button is
selected.
Create Group Button Clicking Create Group will save the list of
securities in the group to the group name you
entered in the New Group text box. If you didn't
enter a name Parity will prompt you for one. To
make the group you created the current group you
must use the Select a Group command.
Cancel Button Will exit the dialog without creating or modifying
a group.
Select a Group
Use the Select a Group command to select the group of securities
which you want to be able to display.
Select a Group Dialog Box
The Select a Group command lists all the groups and allows you to
select the group you want to become the current group by double
clicking on the group's name. After you select a group, a second
dialog box will appear prompting you to enter a data range and some
other parameters controlling the display of charts for the securities
in the group
Options for Displaying Groups
This dialog box sets up certain options that will be identical for
all of the securities in the current group. These options control
the size and number of the charts that will be shown and the range of
data Parity will display from each security in the group.
Dialog Form Items Description
# of Graphs Displayed The number of charts Parity can display at one
time is constrained by Windows' available System
Resources. Windows 3.1 gives Parity significantly
more System Resources than Windows 3.0. You will
receive a warning if you specify more than 12
graphs to be displayed at once. To display only a
single graph at a time, click on the Close Graph
After Displayed check box.
Chart Size Permits you to set the chart size in pixels.
Parity sets the default chart size to equal the
size of a chart after a Window Cascade command. To
maximize the size of each chart as it is displayed
click on the Maximize Graph Size check box.
Print Each Chart This prints each chart when it is displayed. This
option can be used with the Fast Forward and Fast
Reverse Tools to print all the charts in a Group.
See Printing Charts.
Add Blanks to Chart Specify the number of periods of "white" space
you want added to the right of the chart. Useful
for drawing extended trendlines into the future.
Data Range Options Since Parity permits you to group securities
with different numbers of records and starting and
ending dates you must use Relative Record Positions
to specify the data range to be printed. A future
release of Parity will include the option to use
Absolute Date Ranges. See Load a Security for
details about data ranges.
Reorder a Group
When you reorder a group you change the display sequence of the
securities within the group. You can also change the definition of
the group by excluding securities from the Reordered Group list.
Dialog Form Items Description
List of All Groups Select the group you want to reorder by double
clicking on the group's name in this list box.
Original Group Lists all the securities in the group you selected
for reordering which have not been added to the
Reordered Group list. Add a security to the
Reordered Group list by double clicking on the
security name.
Reordered Group Lists the display order for all the securities that
have been selected for reordering. Double Clicking
on a security in the Reordered Group list will add
it back to the Original Group List.
Double Click Action Permits you to select if double clicking on a
security will move it from the Original Group to
the Reordered Group or back, or cause any available
details about the securities data file to be shown
in the upper left corner of the dialog box.
Save All Groups
The Save All Groups command will save the definition of ALL the
groups in memory to the GROUPS.DAT file in your Parity directory.
This is the only way to make any changes, deletions, or newly created
groups permanent. It is not possible to save just the changes of a
single group.
Delete Groups
The Delete Groups command permits you to remove the definition of a
Group from memory. Groups will not be permanently deleted unless you
Save All Groups.
Display Group or Security
The Display command in the Groups menu will display a chart of the
current security using the current study and set the display mode to
Display Group. This command is included for your convenience only
and we recommend controlling the Display Matrix using the Display
Tools found on the Tool Bar.
Import Other Formats
Parity permits you to import data from Excel 2.1 and 3.0 files, Lotus
123 WKS files, Comma Separated Value text files and Tab Separated
Value text files. Excel 4.0 and Lotus WRK, WK1, and WK3 files are
not supported.
You can import price data using the 5 field date, high, low, close,
volume format or the 7 field date, open, high, low, close, volume,
open interest formats. You can also include other data arrays in the
file which will be imported as named variables which you can use in
your formulas.
Each "column" in the file you import is treated as a variable. The
first "row" of the column must contain the name of the variable.
Each subsequent row contains the elements of the variable's data
array. A variable can contain up to 8100 elements.
The Import Other File Formats dialog box is straight forward. Simply
select the file you want to import, check the correct file format
radio button and click on the Import button.
In order to be correctly imported the file must be formatted very
specifically. Please read the following sections carefully. Parity
performs very limited error checking when it imports data so you may
need to experiment with the layout of your file before you are able
to import data correctly.
Importing Price Data
Although Parity permits you to use the Import Other Formats command
to import price data you cannot use this data in a group or with the
profit testing or scanning functions. Importing price data is more
like the Load a Security command but without the ability to select a
data range. Generally, we recommend that you use the Data Conversion
command to convert files with price data to one of the formats Parity
supports directly.
To successfully import price data you must observe the following
conventions exactly. Each variable name must appear in the first row
of the file and must be exactly as shown. Subsequent rows must
include data formatted as described below.
Variable Name Description
Date Mandatory. Subsequent rows must contain date,
rather than text or numeric values for Excel and
Lotus files. Text files must include dates
formatted as MM/DD/YY. Any other formatting will
cause an error. Note you must use Date not Dates.
High Mandatory. High price values. Excel and Lotus
must format the high prices as numeric, rather than
text values. Text files must not contain non-
numeric characters such as "," or "$".
Low Same as High.
Close Same as High.
Volume Same as High.
Open Optional. Same formatting as High.
OpenInterest Optional. Same formatting as High. It is safest
if you fill openinterest with zeros if you include
open data. However, this is not mandatory. Note,
there is no space between open and interest in the
OpenInterest variable name.
Name Mandatory. You must include a text value for name.
The use of more than 16 characters will be
unpredictable. Only the first row after Name will
be recognized.
Symbol Mandatory. You must include a text value for
symbol. The use of more than 8 characters may be
unpredictable. Only the first row after Symbol
will be recognized.
NumFields Mandatory. NumFields must include a numeric value
of either 5 or 7 depending on whether the data
includes Date, High, Low, Close, Volume or Date,
Open High, Low, Close, Volume, OpenInterest. Note
NumFields is one word with no spacing. Only the
first row after NumFields will be recognized.
The columns can occur in any order and the variable names are not
case sensitive. If you are using comma delimited or tab delimited
text files we strongly recommend that you include Name, Symbol, and
NumFields at the end of the first and second lines. Otherwise you
will need to maintain the correct comma or tab separation in each and
every row. Also each line in the file must end with a carriage
return or carriage return and line feed. If you are using a word
processor like Word for Windows that means you must save the file as
text with line breaks.
You must have the "File Includes Price Data" check box checked to
correctly import price data. Once price data is imported you can
create charts using any study or batch. If you Load a Security, or
Select a Group, the price data you imported will be overwritten. You
must use Parity's Predefined Variables to access price data you
import. The Date, High, Low, Close, Volume, Open, OpenInterest,
Name, Symbol, and NumFields variable names will not be accessible to
you.
An Example of a Comma Separated File
Row 1 date,high,low,close,volume,name,symbol,numfields
Row 2 3/1/90,33.5,33,33.25,12500,Good Stock,GSTK,5
Row 3 3/2/90,34,33,33.75,15000
Common Problems Importing Price Data
The Import Other Formats command is bug free. If it doesn't work for
you there is a problem with your file format. Since we can't tell
anything about your file format over the phone we are unable to
provide any meaningful technical support for the Import Other Formats
command unless you send us the file you are trying to import. In our
experience the most common problems importing data are:
1.The date field is not formatted correctly. This occurs most
frequently when importing from a spreadsheet. The date field
looks like a date value but is really text. Check the
formatting of the date column.
2.The Lotus 123 WKS file isn't really in the WKS format but
simply has a WKS extension. Parity can only import from true
WKS format files, not from WK1, WK3 or WRK files. Check the
format of your file.
3.Parity does not support the Excel 4.0 file format. Excel
files must be saved as 3.0 or 2.1 formats. Check the format
of your file.
4.Each line in a comma or tab delimited text files must end with
a hard carriage return. Make sure your word processor is
saving the file in plain text format with line breaks.
Since Parity performs no error handling when you try to import data
if an error occurs the program doesn't fail gracefully and it will
often appear to freeze the computer. Normally you can recover simply
by pressing the up arrow key and closing the dialog box by double
clicking on the control menu box in the upper left hand corner of the
dialog box window.
Importing Other Data
Parity does not limit you to importing only price data. You can
import an array of any numeric data. The name of the data array
variable will be the same as the name in the first row of the data's
column. You can use this variable in exactly the same way as
Parity's Predefined Variables. Non-price data can be imported in the
same file as price data. These imported variables persist throughout
your session.
Parity performs no checking to prevent you from accidentally
overwriting an internal variable. You may also experience problems
with certain formulas when an imported variable doesn't have the
"array range" the formula expects. This is definitely an advanced
option which will require experimentation. One possibility you might
explore is importing data from a package like The Technician, and
including it in your analysis.
See the Predefined Variables section for more suggestions on how to
handle imported data.
Studies Menu
Study Commands
A study controls every aspect of how a chart is displayed except for
which security is being charted. The Studies Menu provides you with
all of the tools necessary to create sophisticated charts. Multiple
studies can be "batched" or "clustered" together to automate
repetitive display tasks.
A batch is a predefined list of one or more studies that is displayed
sequentially on a single security or group. Use batches to automate
and simplify your charting. A batch can hold an unlimited number of
studies and you can define an unlimited number of batches.
Create/Modify Current Study
The Create/Modify Study command opens the Formula Editor, which is
the first of several dialog boxes that control how a chart is
displayed. These dialog boxes always display the settings for the
currently selected study, or the Default Study if no study has been
selected.
The changes you make to the study you are modifying will be temporary
if you select O.K. from the Formula Editor which will then create an
"UNNAMED" study. The "UNNAMED" study is overwritten if you move
through the Display Matrix or select a new current study and your
changes will be lost. You can save your changes under a new or
existing study name by clicking on the Save As button. These changes
will be stored for the current session and can be made permanent with
the Save All Studies command.
The Study Editors
Parity uses five "editors" to set every aspect of a chart's creation.
Editor Description
Formula Editor The Formula Editor lets you create sophisticated
technical indicators using the predefined indicator
list and your own formulas. All of the subsequent
Study Editors return you to the Formula Editor
which controls how your changes will be saved.
Pane Layout Editor Controls how the indicators you defined with
the Formula Editor will be displayed in the chart.
You can specify which pane to plot the indicator
in, where the pane should be displayed, what the
pane size should be, and whether the pane should be
displayed with a scale or a grid.
Color Editor Controls what colors to use for plotting the
indicators as well as the colors used for the
background, scales, labels and grid of the chart.
Options Editor Controls how you label the panes and what to use
for the chart title. Also lets you select the
number of days between ticks on the X axis and
whether the Y axis scale of each pane is optimized
for labels or data. You can also use the options
editor to separate stacked panes with white space.
Actions Editor Sets up to 6 "actions" which can be performed on
each chart depending on whether the conditions you
establish are true or false. The available actions
include Price Painter, Mark It, and Audible Alarms.
Formula Editor
The Formula Editor permits you to create up to nine formulas that can
be displayed on a chart and/or used in another formula. Each formula
can contain any of the indicators, predefined variables, arithmetic
operators, or chart procedures available in Parity.
The result of each formula is assigned to an array variable named F1
to F9 as shown to the left of the Formula to Plot box. The F1 to F9
variables can be used in exactly the same fashion as the predefined
variables, O, H, L, C, V, and OI which hold the data for the current
security. The values for the first security in a group are stored in
the predefined variables FO, FH, FL, FC, FV, and FOI. You can use
these predefined variables to create spreads and relative strength
calculations.
Since the formulas are processed sequentially, the result of a
formula, e.g. F3, can only be used in subsequent formula definitions,
e.g., F4 - F9.
Some indicators such as BolBands(), and Stoch() are actually
procedures rather than functions. You cannot reference the result of
these procedures by F1-F9 or by including them within another formula
calculation.
A formula box can also contain a chart procedure. Chart procedures
perform special processing in order to create displays like Point and
Figure Charts, EquiVolume Charts, Crockerc type charts, and
horizontal bar charts of the number of days at a price, or the total
volume at a price. The ChartFirstSecurity() procedure lets you
include a chart of the first security in a group on the same chart as
the current security. You can even include the results of a profit
test in your chart using the ChartProfitTest() function. To see the
selection of Chart Procedures available click on the Chart Procedure
radio button.
To Define a Formula
1 Click in the Formula Box.
2 Type in your formula or edit an existing formula. Or
3 Double click on a predefined indicator in the indicator list box.
If the Formula Box you clicked on in 1) was empty the indicator
will be copied to the Formula Box.
If the Formula Box already contained a formula definition the
indicator you selected will be saved to the clipboard and you can
position the cursor in any Formula Box and paste the indicator you
selected using SHIFT-INS or the Edit Paste Menu Command.
If you click on the Functions radio button a list of Parity's
operators and functions will be displayed. When you double click
on one of these functions it is saved to the clipboard. You can
paste the function into any Formula Box using SHIFT-INS. You will
need to edit the function manually.
To Define a Chart Procedure
1 Click on the Chart Procedure radio button. The list box will now
display all the chart procedures available to you.
2 Double Click on the Chart Procedure you want to include in your
chart. Complete the dialog box if necessary, and the Chart
Procedure will be copied to the Formula Box or saved to the
clipboard.
The ChartProfitTest() procedure is not available from the chart
procedure list box. You must type ChartProfitTest(), and its
parameters, into the Formula Box manually.
To Define the Line Style
You can select the line style that will be used to plot the result of
a formula by clicking on the drop down list box to the right of the
Formula Box. An example of each of the available line styles will be
shown. The Bars style will plot the formula as a histogram or bar
chart.
Using Japanese Candlestick Charts
By default, Parity will plot the price data as an Open, High, Low,
Close bar chart. To plot this data as a Japanese Candlestick chart
just check the Candlestick check box. If you are using a high
resolution printer you may find that candlestick charts print the
candles too thinly. You can use the Chart Preferences command in the
Options menu to increase the thickness of the candlesticks.
Using Point and Figure, EquiVolume, Crockerc, and Horizontal Bar Charts
Parity provides nine powerful Chart Procedures which permit you to
include special types of graphs in the panes of your chart. Click on
the Chart Procedures radio button to see the selection of charts
available to you. Simply double click on the chart procedure you
want to include and complete the dialog box which will pop up. The
chart procedure will be copied to the empty formula box.
Button Commands
Button Name Description
O.K. Button Saves the settings of all the Study Editors as an
"UNNAMED" Study. These settings will be lost when
another study is loaded.
Save As Button Permits you to save the settings of all the Study
Editors as a "Named" Study. These settings can be
made permanent by selecting the Save All Studies
menu command.
Cancel Button Exits Formula Editor without making any changes in
the current study.
Reset All Button Will reset all of the Study Editors' settings to
the Default Study settings. Useful if you want to
create a new study from scratch when a named study
is loaded.
Panes Button Brings up the Pane Layout Editor dialog which
controls the layout and appearance of all the panes
in a chart.
Colors Button Brings up the Color Editor dialog which controls
the layout and appearance of all the colors in a
chart.
Options Button Brings up the Options Editor dialog which controls
pane labels, chart titles and pane scaling.
Actions Button Brings up the Actions Editor dialog which controls
the Price Painter, Mark It, and Audible Alarm
actions.
Pane Layout Editor
The Pane Layout Editor controls how each data array will be plotted
in a chart. As many as 11 different data arrays can be plotted in a
single chart. These data arrays include price and volume as well as
the array variables F1 to F9 that contain the results of the formulas
defined in the Formula Editor.
By default, Parity plots each data array you define in its own pane,
and each pane is displayed in the chart stacked from top to bottom in
ascending order.
By changing the Pane to Plot In and Pane to Overlay settings you can
plot multiple data arrays in a single pane and stack multiple panes
on top of each other. The Pane to Overlay settings also control the
order in which each pane appears. Each pane maintains its own scale
that can be displayed on the left or right side of the pane or not at
all by adjusting the Scale settings. The Relative Size settings
control the size of each pane in the chart. The Grid Settings
control how each pane displays its horizontal and vertical grids.
Dialog Form Item Description
Pane To Plot In In order to display a data array you must specify a
pane to plot the data array in. A pane can contain
any number of data arrays but each pane only
maintains a single Y axis scale. This scale is
automatically adjusted for the largest and smallest
values plotted in the pane and the Maximize Y Axis
settings in the Options Editor controls how the
scale is fitted to the data. The Pane to Plot In
setting must contain an integer from 0 to 11.
Setting the Pane to Plot In or the Pane to Overlay
to 0 will cause the data array to not be displayed.
The figure above shows ADX(14) and ADXR(14) plotted
in the same pane.
Pane to Overlay The Pane to Overlay setting controls where the pane
is displayed in a chart. By default each data
array is plotted in its own pane that overlays
itself. Panes are plotted in the chart from top to
bottom in ascending order of the Pane to Overlay
value.
If you change the Pane to Overlay to a different
pane then the contents of the pane will be overlaid
onto the other pane. The size of the panes will be
controlled by the first pane that is created.
Since each pane maintains its own scale, you would
overlay panes, rather than plot in the same pane,
when two or more data arrays have very different
ranges. A good example would be overlaying panes
containing PVI() and NVI() data arrays as shown in
the figure above.
You can also change the order in which panes are
displayed on a chart by changing the Pane To
Overlay settings. Valid settings for Pane To
Overlay are 0 to 11. Using 0 will cause the data
array not to be plotted at all.
Relative Size Since Parity permits you to dynamically resize your
charts, all pane size settings are relative to the
total size of the chart. To calculate the display
size of a pane, Parity totals the relative sizes of
all the panes in the stack (overlaid panes are not
counted) and allocates a percentage of the chart's
display area to the pane based on the pane's
relative size divided by the total relative sizes
of all the panes in the stack. Relative sizes can
be any number greater than zero.
Scale Settings Each Pane maintains its own Y-axis scale. This
scale can be displayed to the left or right of the
pane or not at all. Parity will display all the
scales of overlaid panes. Unless you have the Pane
Separation setting selected in the Options Editor
the highest and lowest labels of stacked panes with
scales set to the same side will overlap. To
change the Scale Setting insert the cursor to the
far left of the scale box and type L, R, or N. It
is not necessary to type the whole word or delete
the setting already there.
Grid Settings The frequency of the horizontal and vertical grids
in a pane are automatically controlled by Parity
based on the size of the chart and the pane.
However you can control whether either, both or
none of the grids are displayed in the pane. To
change the Grid setting insert the cursor to the
far left of the grid box and type H, V, B, or N.
It is not necessary to type the whole word or
delete the setting already there.
Color Editor
The Color Editor permits you to control the colors used to plot each
data array, as well as specifying what colors to use for the chart
background, scales and labels.
To change a color simply click on the button for the item you wish to
change. The color selection dialog box will appear. Select one of
38 predefined colors by double clicking on the color name, or create
your own color using the RGB slider bars.
The lines Parity plots are only one pixel wide. Consequently if your
display adapter or Windows settings are set to 16 colors and you
select a dithered color the data plots will be unsatisfactory. Also
with a one pixel width, similarly colored lines will look almost
identical.
As a final caution, you should note that not all printer drivers will
print all the colors you can display and some printer drivers may
print any color except white as a solid black line. Given the
diversity of drivers for Windows we can only suggest that you
experiment with the best settings for your particular mix of
equipment. You can use the Set All To Black button to automatically
set all the colors in the chart to black.
Preview Chart
If you have price data loaded, you can preview the chart as it is
currently defined by clicking on the Preview Chart Button. This will
create a small copy of the chart your study is defining in the Color
Editor form. A complicated study may take a few seconds to display
as Parity calculates the value of each formula.
Options Editor
The Options Editor controls the display of pane labels, chart titles,
pane scales and pane separations. Each of its settings is explained
below.
Dialog Form Item Description
Pane Labels Each pane can have a label within the pane that
will appear in the upper left corner of the pane.
By default pane labels are displayed using the text
of the formula used to create the data arrays in
the pane. You can edit the text of a pane label
and/or completely disable its display using the
Pane Labels text box and check box respectively.
Labels will be displayed in the same color used to
plot the data array.
Parity attempts to display all the Pane Labels for
all the data arrays plotted in a particular pane
area. In other words, labels for all the data
arrays plotted IN a pane or OVERLAID on a pane will
be printed. However, the logic for arranging these
labels is complicated and can easily become
confused when you overlay panes that contain
multiple data arrays. Also the pane may not be
large enough to contain all the labels.
Once a Pane Label has been manually edited,
subsequent changes in the underlying formula will
not affect the label.
We recommend that when you overlay panes you use
the pane label to indicate whether a data array is
plotted to the left or right scale.
Maximize Y Axis? The Y axis scale can be adjusted to maximize the
fit to the data plotted in the pane by checking
this box. This maximizes the amplitude of the data
plotted in the pane. If the box is unchecked
Parity will display the Y axis scale with "rounded"
values, i.e. 10 to 50, or 100 to 200. This will
result in "prettier" labels but can flatten the
data out quite a lot. We prefer maximizing the fit
to data but the choice is yours.
Separate Panes? By default, Parity abuts stacked panes top to
bottom with no separation. If you check Separate
Panes? Parity will add 4% of the area of the chart
as white space to the top of the pane. Depending
on the size of the chart this will usually permit
the top and bottom scale labels of two adjacent
panes to be displayed without overlapping. However
less space will be available to display the data.
The total white space in the chart is added
together and used to adjust the relative size of
all of the panes.
Chart Title Includes: The title bar of a chart can include either
the underlying security name, or the study name, or
both. In order to use a chart in a cluster the
chart title must include the study name.
X Axis Tick Days This controls the minimum number of days displayed
between tick marks on the X Axis. If the chart is
too small to display all the ticks the number of
tick days will be multiplied by a factor of 2 or 5
until the largest possible number of ticks can be
displayed. In addition this setting may affect the
frequency of the Vertical Grid.
Chart Title at Top of Page If you check this box the Chart Title
will be included at the top of the chart as well as
in the title bar of the chart's window. This can
be useful when you are preparing printed charts.
Action Editor
The Action Editor lets you set up to six actions which Parity may
take when it creates a chart from the study you are defining.
Whether the action is performed will depend on whether its associated
condition is true. These actions include the Price Painter which
colors the HLC bars of a price chart when the action condition is
true, Mark It which adds a marker above or below the price chart when
the action condition is true, and Audible Alarms which plays a beep
or a Windows WAV file when the action condition is true within the
number of days set by the user. You can have multiple actions and
action conditions within the same study.
When you click on the Actions button on the Formula Editor the Action
Editor form will appear.
The top half of the Action Editor shows the formulas that you defined
using the Formula Editor. The bottom half of the action editor lists
the actions and action conditions that you are setting. Normally you
will create one or more logical Action Conditions which Parity will
evaluate as true or false expressions. A very simple Action
Condition might be C > MOV(C, 40, E) which would return an array of
1's and 0's depending on whether the closing price was greater than
its 40 day exponential moving average. After you set the action
condition you would select the action you want performed if the
action condition is true. After you select an action condition the
Style and Option Editor for that action will be overlaid on the top
half of the Action Editor as shown below:
The actual options you can set will vary for each of the actions you
choose and should be self explanatory. You can also access the Style
and Option Editor by clicking on the Setup Options button by the
action you want to edit.
The following chart illustrates the result of the Action settings
shown above.
Select a Study
Use the Select a Study command to select the study used to display
the price data from any of the studies you have previously defined.
You can also convert a profit test or a scan to a study by changing
the setting of the "Select The Study From:" drop down list box.
Select the study you want to use by double clicking on its name in
the list box or hit the Enter key after the study you want to select
is highlighted. Note that when you select a new study to become the
current study it will replace the study, batch, or cluster you had
previously selected and reset the X or study axis of the Display
Matrix.
You can also use the Select a Study command to display or print the
study definition by changing the setting of the "Use The Selected
Study For:" drop down list box.
Save All Studies
The Save All Studies command saves the definition of ALL the studies
in memory to the STUDIES.DAT file in your Parity directory. This is
the only way to make any changes, deletions, or newly created
studies permanent. It is not possible to save changes to a single
study.
Delete Study
The Delete Study command removes the definition of a study from
memory. Studies will not be permanently deleted unless you Save All
Studies.
Import Study From Disk
The Import Study From Disk command lets you load a named study from
your floppy or hard disk. When you import a study you can accept its
previously defined name or give it a new name. Note that the
imported study won't be permanantly saved to your STUDIES.DAT file
unless you also issue the Save All Studies command.
Export Study To Disk
The Export Study To Disk command saves all the settings for the named
study that you select to a disk file. Only one study can be saved in
each file and by default Parity will suggest using the first 8
characters of the study name for the file name. Exported studies can
be imported by any Parity or Parity Plus user who has version 1.5 or
higher. In order to export a study it must have been named using the
Save command on the Study Editor. The "Default" and "Unamed" studies
cannot be exported. Exported studies are not deleted from your
STUDIES.DAT file.
Display Current Study
The Display Current Study command displays a chart of the current
security using the current study and sets the display mode to Display
Group. This command is included for your convenience only and we
recommend controlling the Display Matrix using the Display Tools
found on the Tool Bar.
Batch Studies
The Batch Studies command lets you define a new Batch of studies
using the Create Batch form. A Batch can contain an unlimited number
of studies.
To add studies to the batch, double click on the study name in the
All Defined Studies list. If you change your mind and want to remove
a study from the batch just double click on the study name in the
Studies to be Batched list.
Type the name you want to assign to the batch in the Name of New
Batch box. The name can contain 16 significant characters including
A-Z, a-z, 0-9, %, _, $, !, and %. Names cannot begin with a number
and are not case sensitive.
Clicking O.K. will save the batch to memory and Cancel will exit. To
make your changes permanent you must issue a Save All Batches
command.
Select a Batch
Use the Select a Batch command to select the batch used to display
the price data from any of the batches you have previously defined.
Note that when you select a new batch to become the current batch it
will replace the study, batch, or cluster you had previously selected
and reset the X or study axis of the Display Matrix.
To display the first study in the batch using the current security
use the Display Current Study command or click on one of the display
options on the Tool Bar.
Reorder Batch
When you reorder a batch you change the display sequence of the
studies within the batch. You can also change the definition of the
batch by excluding studies from the Reordered Batch list.
Dialog Form Item Description
List of All Batches Select the batch you want to reorder by double
clicking on the batch's name in this list box.
Original Batch Lists all the studies in the batch you selected for
reordering which have not been added to the
Reordered Batch list. Add a study to the Reordered
Batch list by double clicking on the study name.
Reordered Batch Lists the display order for all the studies that
have been selected for reordering. Double Clicking
on a study in the Reordered Batch list will add it
back to the Original Batch List.
O.K. Button Resets the studies list and display sequence of the
Batch to be identical to the Reordered Batch list.
Cancel Exits the Reorder Batch form without making any
changes.
Save All Batches
The Save All Batches command saves the definition of ALL the batches
in memory to the BATCHES.DAT file in your Parity directory. This is
the only way to make any changes, deletions, or newly created
batches permanent. It is not possible to save changes to a single
batch.
Delete Batch
The Delete Batches command removes the definition of a Batch from
memory. Batches will not be permanently deleted unless you Save All
Batches.
To add a batch to the list of batches to be deleted double click on
the batch name in the All Defined Batches list. To remove a batch
from the list of batches to be deleted double click on the batch name
in the Batches to be Deleted list. Click on Delete to make these
changes or Cancel to exit without deleting any batches.
Clusters Menu
A Cluster is similar to a batch. However, instead of displaying its
studies sequentially, a cluster displays all the studies it contains
at the same time and in a predefined screen configuration.
Note that the configuration of a cluster is display specific.
Displaying a cluster created for a higher resolution display, i.e.
Super VGA resolutions of 800 x 600 or 1024 x 768, on a 640 x 480 VGA
display, will have unpredictable effects.
Make a Cluster
To make a cluster you must display screen charts of all the studies
you want included in the cluster. Size and arrange these charts on
your screen exactly as you want them to appear when you display the
cluster. Any charts which exist, whether or not they are visible,
will be added to the cluster as long as they based on "named"
studies. This includes charts that are minimized. Only charts with
titles including the study name can be clustered. Charts without a
named study in the title, or with a "DEFAULT" or "UNNAMED" study
title are excluded from the cluster.
The Make a Cluster command is completely automatic. All you need to
do is name the cluster. The name can contain 16 significant
characters including A-Z, a-z, 0-9, %, _, $, !, and %. Names cannot
begin with a number and are not case sensitive. Clusters, batches,
groups and studies can all have the same name.
Note that the configuration of a cluster is display specific.
Displaying a cluster created for a higher resolution display i.e.
Super VGA resolutions of 800 x 600 or 1024 x 768, on a 640 x 480 VGA
display will have unpredictable effects.
Select a Cluster
Use the Select a Cluster command to select the cluster you want to
display.
Note that when you select a new cluster to become the current cluster
it will overwrite the cluster, batch, or study you had previously
selected and reset the X or studies axis of the Display Matrix.
To display the cluster using the current security click on one of the
display options on the Tool Bar.
Save All Clusters
The Save All Clusters command saves the definition of ALL the
clusters in memory to the CLUSTERS.DAT file in your Parity directory.
This is the only way to make any changes, deletions, or newly
created clusters permanent. It is not possible to save changes to a
single cluster.
Delete Cluster
The Delete Cluster command removes the definition of a Cluster from
memory. Clusters will not be permanently deleted unless you Save All
Clusters.
Display Current Cluster
The Display Current Cluster command displays the charts that comprise
the current cluster on the current security. If no security or
cluster has been loaded you will receive an error message. This
command is included for your convenience only and we recommend
controlling the Display Matrix using the Display Tools found on the
Tool Bar.
Pointer Menu
The Pointer Menu includes less frequently used Action Tools than are
accessible by clicking on an icon on the Tool Bar.
Choose the action you want to perform from the Pointer Menu
selections. Then click on the chart you want to act on. These tools
are "sticky" and stay active until you select another action tool or
click on the Pointer Tool on the Tool Bar.
Command Description
Erase Vertical Lines Erases any vertical lines that have been drawn
on the chart you click on, including lines drawn
with ChartVertLine().
Erase Horizontal Lines Erases any horizontal lines that have been
drawn on the chart you click on, except lines drawn
with ChartHorizLine() which cannot be erased.
Erase Drawn Lines Erases any lines drawn with the limited line tool,
the extended line tool, or the Fibonacci tools.
Erase Cycle Lines Erases any lines drawn with the cycle line tool.
Erase All Lines Erases all the lines drawn on the chart except
lines drawn with ChartHorizLine(). The chart will
flicker as each set of lines is erased.
Erase All Text Erases any text you have added to the chart using
the text tool.
Percent Retracement Tool Click on any three points in a chart.
Parity will calculate the percent retracement for
any third point relative to the distance between
the first two points and show price levels for
frequently cited percentage retracements.
Draw Fibonacci Lines Click on any two points in a chart, usually
two extreme price points. Parity will draw
horizontal lines at the two points plus lines at
38.2%, 50.0% and 61.8% of the vertical difference
between the two points. Note that the calculations
are performed based on the actual points you click
on, not the data values they are proximate to.
Draw Fibonacci Fans Click on any two points in a chart, usually
two extreme price Points. Parity will draw 3
diagonal trend lines extending from the first
point, through the points that are 38.2%, 50.0% and
61.8% of the vertical difference between the two
points and vertical to the second point. These
trend lines are automatically extended to the far
right of the chart. Note that the calculations are
performed based on the actual points you click on,
not the data values they are proximate to.
Fibonacci Time Zones After you click on a point in a chart Parity
will draw vertical lines indicating the important
fibonacci time periods from that date. The
Fibonacci series used is 0, 1, 1, 2, 3, 5, 8, 13
....
Draw Channel Lines Click on any two points in a chart, usually
two points which you believe define a trend.
Parity will draw an extended trend line between the
two points. Then click on any third point and
Parity will draw an extended trendline at the third
point which is parallel to the first two points.
Options Menu
The Options Menu includes several commands used to customize Parity's
operation. It also includes commands for maintaining and converting
your data files. These features are discussed in more detail in Part
8, Data Maintenance and Conversion.
Default Study
The Default Study command permits you to save the settings of the
current study as the "DEFAULT" study. The "DEFAULT" study settings
are loaded when you first start Parity, and whenever you click on the
Reset All button in the Formula Editor.
To make a "DEFAULT" study use the Create/Modify Current Study editors
to define all of the settings for the current study as you want them
to in the "DEFAULT" study and click OK. Then choose Default Study
from the Options Menu and click on Make Default Study. All the
settings, including formulas and chart procedures, of the current
study will be saved to the DEFSTUDY.DAT file. To return to Parity's
standard "DEFAULT" settings delete the DEFSTUDY.DAT file from your
disk.
Chart Preferences
The Chart Preferences command lets you save the settings which affect
the colors and sizes used to display various Chart Procedures and
Action Tools.
When you click on the "Display and Data Preferences" button, Parity
creates a second dialog box that is used to create the default
settings for the chart size and the relative data range which are
used when you Load a Security or Select a Group
The Display Preferences dialog also determines whether a new chart is
always created after you load a security, edit a study, or select
groups, studies, and batches.
Use the Tool Bar Options setting to change the default setting for
the Tool Bar's alignment from session to session.
The Display Preferences dialog permits you to change the default
setting for rescaling the Y axis on a chart when you use the Zoom In
or Zoom Out tools. If you choose to have Parity automatically
rescale the Y axis when zooming it is important to note that any
lines or text you draw on the chart will not be correctly rescaled.
Also if you scroll through a zoomed chart using the horizontal scroll
bar Parity won't automatically rescale the Y axis for the new data
which will be shown. To rescale again just click on the Zoom In and
Zoom Out tools.
You can enable your preference settings for the current Parity
session only, or you can save them to the CHRTPREF.DAT file which
Parity uses to set the default settings you specified. To return to
Parity's standard chart settings delete the CHRTPREF.DAT file from
your disk.
Directory and File Preferences
Permits you to set a Startup Directory used for the Load a Stock and
Create Group commands. You can also save a preference for MetaStock
or ChartPro file formats. Your settings will be saved to the
FILEPREF.DAT file which is automatically loaded when Parity starts.
To return to Parity's standard settings delete the FILEPREF.DAT file
from your disk
Windows maintains a "current" directory for each disk. If you change
from the "Startup Directory" to a different directory using Parity,
or any other Windows application, that will be the directory which
will be displayed when you use Load a Stock or Create Group. Parity
can only set your initial startup directory.
Tool Bar Options
The Tool Bar Options command is used to change the alignment of the
Tool Bar in the display area. Each of the options is discussed
below. In order to change the Tool Bar default setting from session
to session use the Chart Preferences command.
Fixed Tool Bar 21 Pixels From Right
Will recreate the Tool Bar as a fixed window 21 pixels from the right
of the Parity display area. This option offsets the Tool Bar from
the right of the screen to allow room for the verticial scroll bar
which appears if you drag a chart off the screen. The fixed Tool Bar
is not affected by the Window Cascade and Tile commands unless you
have moved a chart off the "desktop" and used the scroll bars which
will appear to move around on the virtual desktop. Then Window
Cascade or Tile may adversely affect the Tool Bar and you may need to
recreate it using the Tool Bar Options command.
Moveable Tool Bar
Will recreate the Tool Bar as a moveable window of fixed size. The
moveable Tool Bar will be affected by the Window Cascade and Tile
commands.
Flush Right Tool Bar
Will recreate the Tool Bar so that it is aligned flush with the right
side of the display. The Tool Bar will be obscured by the vertical
scroll bar which will appear if you drag a chart out of the display
area.
Flush Left Tool Bar
Will recreate the Tool Bar so that it is aligned flush with the left
side of the display. The Tool Bar will obscured the upper left side
of the first few cascaded charts.
Window Menu
The Window Menu provides the standard functionality of the Windows
3.x windowing commands.
Command Description
Cascade Arranges chart windows in an overlapping pattern so
that the title bar of each window remains visible.
Tile Arranges chart windows side by side so that all
windows are visible.
Arrange Icons Arranges all chart icons in rows at the bottom of
the Parity window.
Show Print Log Opens a very simple and limited text editor. You
can make notes and comments in the print log and
use the File Print command to print them or the
File Save As command to save them to a file.
Show Scheduler This command has no function in this release of
Parity.
Help Menu
The Help Menu provides access to Parity's extensive on-line help
files. You can also access help by pressing F1 at any time or
clicking on the Help button in most of the dialog boxes. The help
files include virtually the entire text of the User's Guide.
Part 5 Indicators & Chart Procedures
The technical analysis of stocks and commodities generally falls into
three general types of activity; chart reading, indicator analysis,
and wave or cycle analysis. Vociferous proponents of each method
exist, but most technicians make use of tools from each of these
three general types of analysis in some measure. Parity provides the
user with a wide variety of chart types and predefined technical
indicators which can be used to predict potential price trends.
Chart Reading
Chart reading typically involves the visual recognition of historical
price and volume trends and patterns which are believed to be useful
for forecasting the future direction of a security. Most chartists
draw trendlines and resistance and support lines on a chart which
identify key price patterns. Parity provides a full complement of
drawing tools which are accessible from the Tool Bar or the Pointer
Menu. Just by "pointing and clicking" the user can quickly add
trendlines, text, channel lines and Fibonacci lines to any chart.
Also, Parity's Chart Procedures allow you to create many different
chart types.
Indicator Analysis
Over the years technicians have developed a number of widely
recognized "indicators" which can be useful for predicting when a
security has peaked or bottomed or is continuing in its current
trend. An indicator is simply a predefined formula which takes
historical price and volume data and calculates a new indicator value
which may have predictive significance. Indicator analysis usually
looks for indicator values above or below a certain point,
divergences from an indicator chart and the price chart, or a peak or
trough in the indicator itself. Parity offers most of the commonly
used indicators as predefined functions which can be easily charted
or included in your own formulas.
Cycle and Wave Analysis
Many technicians believe that stocks and commodities follow certain
naturally occurring wave patterns and price cycles. The most
comprehensive (and difficult) theory of this type is the Elliot Wave
Theory. Parity Plus provides the Draw Cycle Lines tool to permit you
to explore different cyclical intervals on any of the charts you
create. Parity also provides a full set of trigonometric functions
that can be used to plot any sort of cycle as a user defined formula
in your charts.
Technical Indicators
Parity includes over 50 of the most popular indicators for the
technical analysis of stocks and commodities. The majority of these
indicators act as functions that return an array which can be used as
the input to another indicator or within a user defined formula.
This makes it easy for you to do "studies on studies" or to develop
your own proprietary charting tools.
A complete list of the indicators available in Parity is shown below.
The following section provides a more detailed discussion of each of
the indicators, however, a full description of the derivation and
interpretation of these indicators is well beyond the scope of this
documentation. Please see the Bibliography which follows for a list
of books which discuss these indicators in detail. Also see the
section on Pattern Recognition Functions (page 66) for a set of
functions which you can use in a profit test or chart to detect
certain features like peaks and valleys.
Notes on Syntax
The naming and syntax for indicators generally follows the
conventions established by MetaStock and TAS. Some indicators expect
parameters of a specific type as shown below:
d Any data array including predefined variables or the result of
another indicator.
p The number of periods to use to calculate the indicator.
t The type of moving average to use. Must be "S" for simple, "E"
for exponential, "W" for weighted.
r Express the result of the indicator in points or percentages.
Must be "$" for points or "%" for percentages.
Note that Parity is not case sensitive. D is the same as d, AD() is
the same as aD().
List of Predefined Technical Indicators
Indicator Function Description
AD() Accumulation/Distribution
ADX(p) Average Directional Movement Index
ADXR(p) Average Directional Movement Rating
ASwing(limitmove) Accumulation Swing Index
BolBands(p, deviations) Bollinger Bands. The deviations parameter
is the number of standard deviations used to
calculate the top and bottom bands. BolBands()
is a procedure.
CCI(p) Commodity Channel Index
CO() Chaikin Oscillator
DPO(p) Detrended Price Oscillator
DX(p) Directional Movement Index
EquiVol(p) EquiVolume Indicator
LinRegSlope(d, p, t) Linear Regression Slope Indicator
MACD() MACD Indicator. The 9 day exponential moving
average of the MACD is plotted in the same
color used by the Text Tool.
MASS(p) Mass Index
MDI(p) Minus Directional Indicator
MFI(p) Money Flow Index
MO(p) Momentum Indicator
MOV(d, p, t) Moving Average
MovLinReg(d, p) Moving Linear Regression
NVI() Negative Volume Index
OBV() On Balance Volume
OSCP(p1, p2, t, r) Price Oscillator
OSCV(p1, p2, t, r) Volume Oscillator
PctDLine( ... ) %D Line Function
PctKLine( ... ) %K Line Function
PDO(d, p) Price Deviation Oscillator
PriceChannel(p) Price Channel Bands
PDI(p) Plus Directional Indicator
PVI() Positive Volume Index
PVT() Price Volume Trend
ROC(d, p, r) Rate of Change
RSI(p) Relative Strength Index
RSIX(d, p) Relative Strength Index with specified data
array.
RWIHighs(p1, p2) Random Walk Index of Highs
RWILows(p1, p2) Random Walk Index of Lows
SAR(IAF, MAF) Parabolic Stop and Reverse System. IAF is the
initial acceleration factor. MAF is the
maximum acceleration.
SMI(p1, p2, p3) Stochastic Momentum Index
STD(d) or STD(d, p) Standard Deviation. STD(d) calculates the
standard deviation of each element of d from
all the values in d and returns a single
scalar number. STD(d, p) calculates the
standard deviation of each element of d from
the values of the preceding p periods and
returns an array.
Stoch(%Kperiods, %Kslowing, %Dperiods, %Dmethod)
Stoch(%Kperiods, %Kslowing) Stochastic Oscillator. Stoch()
takes two forms. You must specify the number
of %K periods and the %K slowing periods.
Optionally you can also specify the number of
%D periods and the %D moving average method,
i.e. "E", "S", "W". By default %Dperiods is 3
and %Dmethod is "E". The %D line is plotted
in the same color as the Text Tool. Stoch()
is a procedure.
Swing(limitmove) Wilder's Swing Index
TR() True Range
TRIX(p) TRIX Indicator
TSF(d, p) Time Series Forecast
ULT(p1, p2, p3) Larry Williams' Ultimate Oscillator
VAR(d) or VAR(d, p) Variance. VAR(d) calculates the variance of
each element of d from all the values in d and
returns a single scalar number. VAR(d, p)
calculates the variance of each element of d
from the values of the preceding p periods and
returns an array.
VHF(d, p) Vertical Horizontal Filter
VOL(pm, pr) Chaikin's Volatility Indicator, pm is the
number of moving average periods, pr is the
number of rate of change periods.
VOLW(p) Wilder's Volatility
WC() Weighted Close
WILLA() Williams' A/D
WILLR(p) Williams %R
ZIG(d, change, r) Zig Zag Indicator. Filters out changes that
are less than change points or change percent.
If r is "%" then change must be less than 1.0.
Bibliography of Technical Analysis Texts
The New Commodity Trading Systems and Methods. Perry J. Kaufman.
Technical Analysis of the Futures Markets. John J. Murphy.
The Encyclopedia of Technical Market Indicators. Robert W. Colby &
Thomas A. Meyers.
The Technical Traders Guide to Computer Analysis of the Futures
Markets. Charles LeBeau & David W. Lucas.
Technical Analysis of Stock Trends. Robert D. Edwards & John Magee.
Technical Analysis Explained. Martin Pring.
New Concepts in Technical Trading Systems. J. Welles Wilder.
Definition and Interpretation of Technical Indicators
Over the course of the past 20 years or so technical analysts have
devoted an increasing amount of their time to the derivation and
interpretation of technical indicators that they believe are useful
for understanding historical price patterns and predicting future
price trends. Prior to the 1970's this sort of analysis was nearly
impossible given the difficulty of manually computing most of these
indicators and the scarcity of adequate computer power. Although
chart pattern interpretation and trendline analysis continues to be
important, most technicians have a "toolbox" of indicators that they
rely on to identify price trends and overbought and oversold
conditions.
Parity includes predefined functions for many of the most popular and
widely used indicators. Each of the predefined indicators is
discussed below. Wherever possible we have provided the actual
custom formula equivalents for the indicators to help you to
understand the derivation of the indicator as well as providing you
with examples you can use to develop your own custom formulas. We
also discuss some of the more common interpretations of many of the
indicators. See the section on Pattern Recognition Functions (page
66) for a set of functions which you can use in a profit test or
chart to detect certain features like peaks and valleys.
Neither the inclusion of an indicator nor the discussion of its
interpretation should be construed as representing an endorsement of
its use. To the best of our knowledge no one indicator or even a
combination of indicators is guaranteed to result in profitable
trading for every combination of securities and markets.
Indicator Parameters and Syntax
The naming and syntax for the indicator functions generally follows
the conventions established by MetaStock and TAS. Some indicators
expect parameters of a specific type as shown below:
d Any data array including predefined variables or the result of
another indicator. The variable names for the price data are
O, H, L, C, V, and OI for the open, high, low, close, volume
and open interest data array values.
p The number of periods to use to calculate the indicator. The
period parameters for indicators requiring more than one period
are designated by p1, p2, and p3. A period is the same as one
bar on a price chart or a single element of a data array. The
actual time period, i.e. days or weeks, will depend on the
periodicity of the data you have loaded.
t The type of moving average to use. Must be "S" for simple, "E"
for exponential, "W" for weighted.
r Express the result of the indicator in points or percentages.
Must be "$" for points or "%" for percentages.
Some indicators require a parameter of a different type, i.e.
BolBands(p, deviations), which are explained in the discussion of the
indicator. The parameter names or variables "stand in" for the
specific values you enter, i.e. MOV(C, 40, "E") is a specific case of
the indicator function defined more generally as MOV(d, p, t).
The predefined indicators can be selected from the list boxes on the
Study, Profit Test, and Scan Editors by double clicking on the
indicator's function name or description. You can also manually
enter an indicator by typing it into the formula box on the Editors.
Parity doesn't perform error testing on manually entered formulas.
Many of the indicator descriptions include a reference to one of the
books in the Bibliography. Generally we recommend Murphy's book for
beginners, Kaufman for a more advanced and mathematical discussion,
and Colby & Meyers for its detailed discussion and profit testing of
dozens of indicators.
MetaStock Function Compatibility
Parity supports virtually all of the indicators and functions
provided with MetaStock 3.5, and adds many new indicators and
functions of its own. The following details the differences between
MetaStock and Parity.
MetaStock Functions Not Supported In Parity 1.5.
Options None of MetaStock's options related functions are
supported in Parity 1.5. These include the option
functions delta(), gamma(), life(), option(),
theta(), and vega().
Indicators We have had trouble finding the correct formulas
for the following indicators: corr(), di(), fft(),
and hpi(). These indicators will be added as we
figure out how to calculate them.
MetaStock Functions which will never be supported.
Function Description
fml() This has no equivalent in Parity since the result
of a formula can be referred to directly using F1
to F9.
if() if is a reserved word. Equivalent functionality is
provided by: IF test THEN d1 ELSE d2.
mod(d, v) mod is a reserved word. Equivalent functionality
is provided by: d mod v.
ref(d, p) Equivalent functionality is provided by d[-p] or
d[+p].
sqr(d) sqr is a reserved word. Equivalent functionality
is provided by: SQRT(d).
sub(a, b) sub is a reserved word. Equivalent functionality
is provided by: a - b.
sum(d, p) sum is a reserved word. Equivalent functionality
is provided by: StatMovTot(d, p)
Trivial MetaStock Functions which are supported.
For your convenience we do support the following MetaStock functions.
The actual underlying Parity equivalent is shown for your
edification. We cannot guarantee that these functions will be
supported in future releases of Parity.
Function Description
ADD(a, b) a + b
DIV(a, b) a / b
FRAC(a) a mod 1
HHV(d, p) StatMovMax(d, p)
INT(d) d \ 1
LLV(d, p) StatMovMin(d, p)
MID(d, p) (StatMovMin(d, p) + StatMovMax(d, p))/2
MP() (H + L) / 2
MUL(a, b) a * b
NEG(d) -d
PER(d) (d - d[StartValid(d)])/ d[StartValid(d)]
PREC(d, p) ((d * 10^p) \ 1) / 10 ^ p
PWR(a, b) a ^ b
Procedures vs. Functions
Parity includes several indicators which are defined as Procedures
rather than Functions. These indicators, which include BolBands()
and Stoch() do not return an array of data values. However,
BolBands() and Stoch() do create named Global Variables which can be
used in subsequent calculations.
Parity also includes a special class of Chart Procedures which are
used to create special chart types in a pane of a study. Chart
procedures are used in a study just like indicators but they do not
return an array of data values.
Indicator procedures and chart procedures cannot be used within any
other function and the result of the procedure cannot be referred to
using the F1 to F9 array variables.
The following predefined indicators are Procedures rather than
Functions.
BolBands(p, deviations). Calculates the Bollinger Bands for the
closing price using p periods and deviations standard
deviations. The result of the calculation are stored in the
global variables topband, centerband, and bottomband which may
be referenced in subsequent calculations.
Stoch(%Kperiods, %Kslowing, %Dperiods, %Dmethod) Calculates the
Stochastic Oscillator for the price data. The results of the
calculation are stored in the global variables %KLine and %DLine
which may be referenced in subsequent calculations.
Chart Procedures
Parity includes the ability to display multiple types of price charts
within the same Study/Chart. Parity accomplishes this with its Chart
Procedure functionality. Chart Procedures are used in a Study almost
exactly like Parity's predefined indicators. However, instead of
returning a data array which is plotted in a pane of the chart, chart
procedures create an entirely different chart type in the specified
pane.
Like indicators, chart procedures can be added to a study by double
clicking in the Formula Editor's list box when the Chart Procedure
radio button is on. Or you can manually type a chart procedure into
a formula box. Note that the color and width used for many of the
Chart Procedures can be set with the Chart Preferences command on the
Options Menu.
Types of Chart Procedures
ChartFirstSecurity(typechart)
Creates a bar, line, or candlestick chart of the first security in
the Group. Use "B", "L", or "J" for the typechart parameter. See
Predefined Variables.
ChartHorizLine(data), ChartVertLine(data, c1, c2)
Draws vertical and horizontal lines on a chart based on the values of
data. No results are returned. See Adding Lines to a Chart.
ChartProfitTest()
Permits you to calculates the result of the profit test you define
with the buywhen, sellwhen, longstop, and shortstop parametersand
embed the results in any Study. The ChartProfitTest() procedure is
an advanced feature of Parity Plus and is not available in the
shareware version of the program.
DaysAtPrice(array, band)
Plots a horizontal bar chart of the number of days array was within
the price range defined by band. DaysAtPrice() is usually used with
price data such as C, but you can use it with any array variable such
as F1-F9. The band parameter sets the "granularity" of the price
ranges which are used to total the occurrences of array. For example
a band of 1 will treat a closing price of 33, 33.5 and 33.75 as
occurring in the same band while .25 would treat them as falling into
separate bands. The horizontal bar is plotted at the midrange of the
band. Each increment along the X axis equals 1 day where array's
price was within the band. By default Parity will plot DaysAtPrice
in the Price Pane.
DBarPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
Causes a modified point and figure chart which incorporates the
duration or time period of a column to be displayed in its pane. No
results are returned.
EquiVolumeChart()
Creates the Equivolume chart popularized by Richard Arms. The width
of each box on the chart is proportional to the volume traded, while
the top and bottom of the box corresponds to the High and Low prices
for that day. A future version of Parity will include Equivolume
Candlestick charts. If you plot more than 1500 days of data with
EquiVolumeChart() you will hit Parity's limit of 8189 data array
elements and receive an error message.
VolumeAtPrice(array, band)
Plots a horizontal bar chart of the total volume when array was
within the price range defined by band, proportional to the total
volume traded during the period of the chart. Unlike DaysAtPrice(),
the length of the horizontal lines is relative, not absolute.
Roughly speaking, a line twice as long had twice as much volume at
that price. See DaysAtPrice() for more detail.
XOPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
Causes a traditional point and figure chart to be displayed in its
pane. No results are returned.
XVolumeYPrice()
This procedure plots a line chart where the X axis is volume and the
Y axis is the closing price. The first day is indicated by an "S" on
the chart, and the last day by an "E". The direction of the lines is
indicated by their color. By default, the lines cycle through Red,
Green, and Blue. So the line for the first data point is Red, the
second is Green, the third is Blue, the fourth is Red etc. The
overall effect is to create something akin to The Crocker Chartc.
The analysis of Crocker Chartsc is beyond the scope of this
documentation.
Point and Figure Charts
Point and Figure charts are used to plot price movement rather than
price action over time like bar or candlestick charts.
You create point and figure charts by typing one of Parity's two
types of point and figure chart procedures in the formula box of the
Formula Editor. Point and figure charts can be plotted in a unique
pane, which can be stacked or overlaid on another pane, or plotted in
a pane with other indicators.
Constructing Point and Figure Charts
Traditional point and figure charts display price movement as a
series of columns of X's and O's. An X column indicates rising
prices and the O column indicates falling prices. By default Parity
also colors the X columns blue and the O columns red to facilitate
their interpretation.
The two most important parameters in the construction of a point and
figure chart are the box size and the reversal criterion. The box
size determines the minimum price movement necessary to add an X or O
to a column. The reversal criterion is usually expressed as x number
of boxes and is used to determine if a new column of X's or O's
should be started. The procedure to create a chart in an
English/BASIC dialect is:
Get the high and low prices for today
SELECT CASE current column
CASE current column is X's
IF today's high is at least 1 box > than previous high
THEN
Plot new X's.
Do not fill box if scale price is > today's high
ELSE IF today's low is x boxes below the X column high
THEN
Move right one column
Enter O's beginning 1 box below the X column high
Do not fill box if scale price is < today's low
END IF
CASE current column is O's
Do the reverse of the X case.
END SELECT
Traditional point and figure charts disregard time. This makes it
difficult to relate point and figure charts to standard price volume
charts. To alleviate this problem Parity incorporates a point and
figure chart type, DBarPointFigure(), which changes the width of the
X and O columns to reflect the passage of time.
The Point and Figure Procedures
Parity has two chart procedures which can be used to create point and
figure charts.
XOPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
Plots a traditional point and figure chart of X and O columns. If
you have a color display, X's will be displayed in blue and O's in
red. The procedure is entered as a formula in a Study. How point
and figure charts are displayed can be controlled in the same fashion
as any other item plotted in a study.
DBarPointFigure(boxsize, reversals, $or%, reverseWhen, constantBox)
Plots a modified point and figure chart which incorporates time by
varying the width of a column to match the entry and exit dates. X
columns are displayed as blue rectangles, O columns are displayed as
red rectangles.
Parameters
Parity permits you to experiment with a number of varieties of the
point and figure method by changing the parameters used with
XOPointFigure() and DBarPointFigure.
Parameter Description
boxsize The box size of the chart can be expressed in
points or percentages, i.e. 1.0 could indicate
one point, or .05 could indicate 5% depending
on the setting of $or%
reversals Determines the number of boxes need to reverse
direction and start a new column. Must be a
positive number. Note that a boxsize of 1 and
reversals of 3 and boxsize of .5 and reversals
of 6 will create identical charts.
$or% Determines whether the value of boxsize is
used as an absolute dollar amount or a
percentage of the closing price. $or% must be
either "$" or "%" including the quotes.
reverseWhen An important question for point and figure
charts is when to test for a reversal if the
high and low prices of a volatile trading day
could be used to continue a column or reverse
to a new column.
Setting reverseWhen to "A" causes Parity to
test for a reversal even after a column has
been continued.
Setting reverseWhen to "N" causes Parity to
only test for a reversal if the column has not
been continued. This is the case shown in the
chart construction example above.
Setting reverseWhen to "B" causes Parity to
test for a reversal before it tests if the
column has been continued.
constantBox Parity can automatically vary the box size as
a function of closing price when $or% is set
to "%". constantBox must be either "Y" for a
constant box size or "N" for a variable box
size based on boxsize * today's close. If
$or% is set to "$" constantBox is ignored.
Limitations
An XOPointFigure() chart can contain a maximum of 8189 X and O
elements. This is a limitation for all data arrays in Parity. An X
or O element is created for every box movement. If you use a very
small box size relative to the volatility and price of the security
it is possible to hit the 8189 element limit. An example would be
using a 0.5 box size on something like the Dow Jones Industrial
Average. This will cause a range error when you create the chart.
To recover control of Parity just hit the up arrow key. Then close
the error message box by double clicking on the control menu icon in
the upper left corner of the error message box.
Point & Figure Charts of Indicators and Non-Price Data
Parity 1.5 permits you to use the DBarPointFigure() and
XOPointFigure() procedures to create point and figure charts of
indicators and non-price data. Simply add a sixth parameter which is
the numeric array you want charted in point & figure form. For
example you could create a point & figure chart of the relative
strength of the current security compared to the first security in
the group with a starting value of 100 (assuming the C and FC arrays
have the same range and number of elements) using the following
formula:
XOPointFigure(.5, 3, "$", "N", "Y", (C/FC) * ((100 * FC[1])/C[1]))
Note that this feature is not fully tested or debugged. We do not
recommend using percentage based box sizes except with data you are
certain contains only positive numbers not too close to zero. Also
make sure that your box size is appropriate to your data.
Adding Lines to a Chart
Parity includes two procedures which can be used to automatically
plot vertical or horizontal lines on a chart. ChartVertLine() is
particularly useful for indicating buy/sell criteria while
ChartHorizLine() is useful to graphically illustrate threshold values
for the formulas and indicators you plot.
To use these procedures simply type them into a formula box in the
Formula Editor.
ChartVertLine(array, type, color1, color2)
Causes vertical lines to be plotted the full height of the chart.
ChartVertLine requires 1, 2 or 4 parameters as explained below.
Generally, you will want to set the Pane To Plot In to the value of a
pane which contains data. This doesn't affect how ChartVertLine()
works but otherwise you will have an empty pane in your chart.
ChartVertLine(array) -- One Parameter Case.
array Holds a data array which can be a predefined
variable, F1 to F9, the result of an
indicator, or an expression combining any of
these. ChartVertLine(array) tests for array
<> array[-1] and plots a vertical line
whenever it is True. In other words
ChartVertLine will plot a vertical line
whenever today's array value is not equal to
yesterdays array value. For example:
ChartVertLine(C > MOV(C, 50, "S")
Will plot a vertical line when the closing
price crosses above or below the 50 day simple
moving average.
ChartVertLine(array, type) -- Two Parameter Case
array Holds a data array as above. Or array can
contain an array of dates. The type parameter
determines how array will be evaluated.
If you want array to be a list of dates you
must express the dates as follows:
ChartVertLine({"07/01/91", "09/15/91",
"10/20/91"}, "dates")
This will plot a vertical line at each date
contained in array if that date exists in the
chart. If the date doesn't exist no line will
be plotted. Dates must be enclosed in quotes
and can be expressed as "MM/DD/YY", "YYMMDD",
or "DD-MMM-YY" type formats. To plot a singe
date use ChartVertLine({"07/01/91"}, "dates")
or ChartVertLine("07/01/91","dates")
type Must be set to either "dates" to plot an array
of dates, or "values" to plot a data array as
in the one parameter case.
ChartVertLine(array, type, color1, color2) -- Four Parameter Case
array As above
type As above
color1 The name of a color, enclosed in quotes.
Valid names are shown in the select color list
in the Color Editor. Examples include "Blue",
"Black", "Red", "Green", "Yellow", "Cyan",
"Magenta". The first vertical line will be
drawn in color1, the second in color2, the
third in color1, etc.
color2 As above.
ChartHorizLine(data)
Plots horizontal lines at the Y axis values held in data, in the Pane
To Plot In assigned in the Pane Layout Editor. The color of the line
is set using the Color Editor.
By plotting ChartHorizLine in the same pane as a formula, indicator,
or price chart it is possible to set one or more visual "thresholds"
which you can use to judge whether the formula or indicator is
signaling a buy or sell condition.
ChartHorizLine(data) takes a single parameter, data, which can be
either a scalar or array value. For example to plot 4 horizontal
lines in a pane use:
ChartHorizLine({100, 50, 0, -50, -100})
To plot a single horizontal line you can use either:
ChartHorizLine({0})
Or
ChartHorizLine(0)
The values in data can appear in any order.
Part 6 Formulas, Operators & Functions
Parity provides a full complement of powerful mathematical functions
and operators which can be used to create very complex user defined
formulas. Parity supports a very standard mathematical and
programming syntax which is derived from the BASIC computer language.
However, the unfortunate reality is that user defined formulas do
require some understanding of math and algebra. We have included
examples of how custom formulas can be used in the Indicators section
of the manual and throughout the text to help you familiarize
yourself with these concepts.
User Defined Custom Formulas
Parity permits you to create extremely sophisticated formulas using
the Formula Editor, the Profit Test Editor, and the Scan Editor.
With Parity you can create formulas using:
Arithmetic Operators +, -, *, /, ^, Mod, \
Comparison Operators =, <>, <, >, <=, >=
Logical Operators AND, OR, NOT, XOR, EQV, IMP
Trigonometric Functions Cos(), Sin(), Tan(), ACos(), ASin(),
ATn(), ATan2()
Exponential Functions Exp(), Exp10(), Log(), Log10(), Sqr(),
Sqrt()
Rounding Functions Round(), Ceil(), Floor(), Abs(), Sgn(), Bool()
Array Related Functions Sum(), Product(), RunTot(), Min(), Max(),
IF test THEN data1 ELSE data2
Statistical Functions StatNorm(), StatPercent(), StatRegress(),
StatMovTot(), StatMovMin(), StatMovMax(),
RND()
Date Functions DayOfWeek(), DayOfMonth(), DayOfYear(),
MonthNumber(), YearNumber(), StrToDate().
Pattern Recognition Bottom3Bars(), Top3Bars(), Bottom5Bars(),
Top5Bars(), Bottom7Bars(), Top7Bars(),
CrossAbove(), CrossBelow()
Technical Indicators Predefined technical indicators for stock
and commodity charting, i.e. AD(), ADXR(),
MOV(), TRIX(), TSF() etc.
ForLoop Function The powerful ForLoop() function lets you embed
a FOR loop program in an algebraic formula if
it requires a self-referential calculation.
Other Formulas F1 to F9 when previously defined
Limitations of User Defined Formulas in Parity
Version 1.5 of Parity includes several important limitations on the
formulas you create:
1 A formula cannot contain more than 512 characters.
2 You cannot assign the result of a formula to a variable. By
default, formulas created using the Formula Editor will assign the
result of a formula to its corresponding F1 to F9 variable, which
can be used in subsequent calculations. You cannot use = as an
assignment operator within a formula. The following will cause an
error when you chart a study.
x = H - L
The exception to this rule is when you are using the ForLoop
function which does permit you to create intermediate variables.
3 Parity calculates the result of a formula "all at once". This can
create a problem where you might want to use "yesterdays" value of
the formula in the formula. For example, a 9 day exponential
moving average of the closing price is defined as:
current period close * 0.2 + previous period's average * (1 -
0.2)
However, Version 1.5 of Parity does provide the very powerful
ForLoop() function which lets you embed a calculation which would
normally require a FOR loop in any of Parity's algebraic
expressions. For example the exponential moving average
calculation shown above could be performed with the following
statement:
ForLoop( "RV[x-1] * .8 + C[x] * .2", 2; "RV[1] = C[1]" )
Also, Parity does permit you to perform running and moving totals
with the RunTot() and StatMovTot() functions. These functions are
useful for calculating indicators like the predefined Volume
Accumulation/Distribution indicator, AD(), that is defined as:
((Close - Low) - (High - Close) / (High - Low) ) * Volume + "the
value of yesterdays calculation"
and which can be calculated using the following custom formula:
RunTot(((C - L) - (H - C) / (H - L)) * V)
Note that it is easy to reference the previous value of an array
once it has been calculated using the [-x] array notation, you
simply can't do it while its being calculated. This is equivalent
to MetaStock's ref(data array, period) function but is much more
powerful and direct.
4 Parity does not perform any error checking on user defined
formulas before it executes them. If you attempt to plot a
formula with an error in it, Parity will issue a cryptic error
message and appear to hang. To resume the program simply hit the
up arrow key and close the error message.
Examples of Valid Formulas
AD()
MOV(C, 20, "S")
Stoch(5, 3, 3, "E")
(H - L) / C
ROC( RSI(14) , 10, "%" )
(MOV(C,10, "E") > MOV(C, 40, "E") AND RSI(14) <= 70) * 2 - 1
TSF(C, 21)[-1] <= TSF(C, 21) AND TSF(C, 21) >= TSF (C, 21)[+1]
C > 30
Examples of Invalid Formulas
x = H - L
Stoch(5, 3, 3, "E") / C
Any formula that results in division by 0.
Arrays versus Scalars
A good understanding of arrays is essential to creating your own
formulas. When you chart an indicator in Parity it appears as a
continuous line. In fact the line simply connects the multiple
discrete data values which make up the array which is defined by that
indicator. Likewise, Parity loads a security's price data into
separate arrays for the high, low and closing prices which are then
available to you via the predefined array variables, H, L, C.
An example of an array with five values would be:
DA = {2, 4, 6, 8, 10}
The squiggly brackets indicate that the numbers form an array, which
can be thought of as a set of numbers which can be referred to as a
single entity or variable, in this case the variable DA. Each
element of an array can be referenced by its "index", i.e. its
position in the array. In the example above the number 6 has an
index of 3 and could be specified as DA[3] (see below for more
information on referencing arrays). Many math texts also refer to
arrays as vectors.
An array doesn't have to contain multiple values, it could include
only a single number, for example the array {5} contains just one
value. However, the array {5} is a different type of data than the
"scalar" number 5. In other words, scalars contain a single value,
such as 2.7 or 5. Arrays generally contain multiple values, each
element of which is addressed by an index.
Most of Parity's operators and functions work equally well on arrays
and scalars and the two can be mixed together in computations. For
example, you can multiply an array variable with 5 values by the
scalar number 2 as shown below:
{4, 8, 12, 16, 20} = {2, 4, 6, 8, 10} * 2 = DA * 2
An array can contain a maximum of 8189 elements.
Referencing Arrays
There are several ways to refer to arrays and to their elements as
shown below.
V The whole array Where V is {2, 4, 6,
8, 10}
V[x] Element x of array V V[4] would be {8}
V[x:y] Elements x to y of V V[2:4] would be {4,
6, 8}
V[-x] V with elements V[-1] would be {?,
shifted ahead by x 2, 4, 6, 8, 10}
units. The valid
range is also
adjusted to match the
shifted elements
V[+x] V with elements V[+1] would be {4,
shifted back x units. 6, 8, 10}
Elements shifted
before x are
discarded.
The size of an array is the total number of elements it contains. In
the example above V's size is 5 elements. Arrays also have valid
ranges and they do not have to be defined starting with index 1. In
our example the valid range of V[-1] is [2:6]. Index [1] of this
array is undefined.
Array Calculations
All of Parity's operators and most of its predefined functions and
indicators work on arrays. The careful use of array shifting can
permit you to create very powerful formulas using Parity. For
example to calculate the percent change of today's closing price
versus two days ago you could use the formula:
( (C - C[-2]) / C[-2] ) * 100
Or, to calculate the difference between a 14 day simple moving
average and the closing price:
C - MOV(C, 14, "S")
Generally Parity is able to automatically compensate for the changes
in size and valid range that occur in array calculations. However it
is conceivable that you might create a formula which tries to perform
an operation on two arrays that don't have overlapping valid ranges
and have different sizes. In that case Parity will give you an error
message when you try to execute the formula.
Predefined Variables
Whenever Parity loads price data for a security it creates a number
of predefined array variables that can be used in your formulas.
These variables include:
DATES Array of Date Values for the security
H Array of High Prices
L Array of Low Prices
C Array of Closing Prices
V Array of Trading Volume
If the data file which is loaded includes open and open interest data
Parity will also create these additional variables:
O Array of Opening Prices
OI Array of Open Interest
Each element of these predefined variables contains data from the
corresponding record in the data range that was loaded. The first
element is always the oldest record and the last element is the most
recent record loaded.
Predefined Variables for the First Security in a Group
Parity also stores the price data for the first security in a group
in a special set of predefined variables. This lets you create
formulas that perform spread or relative strength calculations.
These special variables include:
FDATES Array of Date Values of First Security in a Group
FH Array of High Prices of First Security in a Group
FL Array of Low Prices of First Security in a Group
FC Array of Closing Prices of First Security in a
Group
FV Array of Trading Volume of First Security in a
Group
FO Array of Opening Prices of First Security in a
Group
FOI Array of Open Interest of First Security in a Group
If the date range of the first security in a group is different from
subsequent securities in a group, the use of these special variables
will be misleading at best.
The ChartFirstSecurity(type of chart) chart procedure can be used to
plot a line, bar, or candlestick chart of the first security in any
pane of a chart.
If you Load a Security before you select a current group these Fx
variables will be identical to the predefined variables for that
security. However, if the Fx variables are already defined they will
not be overwritten, except when you select a new group. This
prevents "Undefined Variable" errors and gives you maximum
flexibility in designing your studies.
The Fx variables are extremely useful for charting spreads and
relative strength comparisons. Typically the first security in a
group would be an index like the S&P 500 or the leading company in an
industry. You could then use a formula like
C - FC
to plot a spread or
(C-C[1])/(FC - FC[1])
to plot relative strength.
Importing User Defined Variables
Parity gives you the unique ability to import user defined variables
using the Import Other Formats command. These user defined variables
will persist for the duration of your session with Parity and can be
used just like predefined variables. Note that Parity provides no
error or range checking for user defined variables. There is a
special syntax which can make user defined variables more useful to
you. Let's say you imported a variable called NYSEADVANCE which has
800 data elements. The data you are charting includes 101 data
elements. Assuming the date of the last element of NYSEADVANCE is
the same as the last day of your price data you could use the
following command to include NYSEADVANCE in a formula correctly:
NYSEADVANCE[EndValid(NYSEADVANCE) - 100 : EndValid(NYSEADVANCE)]
To actually chart NYSEADVANCE you might also need to adjust its valid
range by appending
[ + (EndValid(NYSEADVANCE) - 100) ]
To the formula above. Obviously user defined variables are a
powerful AND complex feature. You will need to experiment to become
familiar with this capability. Please see the sections on Arrays
versus Scalars (page 56) , and Array Related Functions (page 63) for
more information on the use of the [ ] array operator and the
StartValid and EndValid functions.
Operators, Parenthesis and Mathematical Precedence
Formulas in Parity follow the normal conventions for the use of
parenthesis and precedence to control the order in which mathematical
operations are performed. Parity also supports the normal
mathematical operators available in most BASIC dialects including (in
order of precedence):
( ) Parentheses
[ ] Array Brackets
^ Exponentiation
- (unary minus) Unary Minus
* / Multiplication and Division
\ Truncated Division
Mod Modulus
+ - Addition and Subtraction
= <> > < >= <= Comparison
Not Logical Negation
And Logical And
Or Logical Or
Xor Logical Exclusive Or
Eqv Logical Equivalence
Imp Logical Implication
With some rather complicated exceptions these operators can be used
equally well with Scalar or Array values. The Logical Operators
consider a 0 value to be False and any non zero value to be True.
Using a Logical Operator on an array will return an array of ones and
zeros.
Arithmetic Operators
Parity permits you to use all of the standard arithmetic operators in
your formulas as shown below.
A + B Add B to A.
A - B Subtract B from A.
A * B Multiply A and B.
A / B Divide A by B.
A ^ B Compute AB. 2 ^ 4 is 2*2*2*2.
A Mod B Return the integer remainder of A / B. 17 Mod
3 is 2.
A \ B Truncated Division. Divide A by B and discard
digits to the right of the decimal place. 17
\ 3 is 5.
- A Negate A. This is a unary operator.
Comparison Operators
The Comparison Operators compare two values which can be either an
array or a scalar. The comparison operators return 1 if the
comparison is true or 0 if it is false. Using a comparison operator
with an array will return an array of 1's and 0's for each element in
the array.
A < B If A is less than B the result is 1, and 0
otherwise.
A <= B If A is less than or equal to B the result is
1, and 0 otherwise.
A <> B If A is not equal to B the result is 1, and 0
otherwise.
A = B If A is equal to B the result is 1, and 0
otherwise.
A > B If A is greater than B the result is 1, and 0
otherwise.
A >= B If A is greater than or equal to B the result
is 1, and 0 otherwise.
Logical Operators
Logical Operators work on true and false values. Parity considers
any non-zero value to be true and 0 to be false. Logical Operators
can be combined with comparison operators and other values to form a
logical statement. Using Logical Operators with arrays will return
an array of 1's and 0's.
A AND B If A and B are both non-zero the result is 1.
Otherwise, the result is 0.
A OR B If A or B is non-zero the result is 1.
Otherwise, the result is 0.
A XOR B If A is non-zero and B is 0, or A is 0 and B
is non-zero, then the result is 1. Otherwise,
the result is 0.
NOT A If A is non-zero, the result is 0. If A is 0,
the result is 1
A EQV B If A and B are both non-zero, or A and B are
both 0, then the result is 1. Otherwise, the
result is 0.
A IMP B If A is 0 or B is non-zero, the result is 1.
Otherwise, the result is 0.
Trigonometric Functions
Parity supports the standard trigonometric and inverse trigonometric
functions. Angle measurements are in radians.
Degree measurements are converted to radians by multiplying by the
factor pi/180. The value of Pi can be obtained using ACos(-1).
Trigonometric functions will operate on either scalar or array
values.
Cos(data) Computes the cosine of a value given in
radians.
Sin(data) Computes the sine of a value given in radians.
Tan(data) Computes the tangent of a value given in
radians.
ACos(data) Computes the arccosine of a value given in
radians.
ASin(data) Computes the arcsine of a value given in
radians.
ATn(data) Computes the arctangent of a value given in
radians.
ATan2(Xdata, Ydata) Computes the tangent of a line from the origin
to a point.
Exponential Functions
Parity includes a set of common exponential functions:
Exp(data) Computes ex
Exp10(data) Computes 10x
Log(data) Computes ln(x)
Log10(data) Computes log10(x)
Sqr(data) Computes x2
Sqrt(data) Computes the square root of a value.
The logarithm of a number for a base other than e or 10 is computed
with the following formula:
Logbx = Log(x) / Log(b)
The value of the constant e is calculated with the equation below:
e = Exp(1)
Rounding Functions
Rounding functions are used to adjust scalar or array data in a
number of ways.
Round(data) Returns the nearest integer to a value.
Round(6.6) is 7.
Ceil(data) Returns the smallest integral number >= the
value. Ceil(6.3) is 7
Floor(data) Returns the largest integral number <= the
value. Floor(6.9) is 6
Abs(data) Returns the absolute value of a number. ABS(-
3.3) is 3.3.
Sgn(data) Returns the signum function of a number, i.e.
1 for 6 and -1 for -6.
Bool(data) Converts a number to a Boolean. Either 1 for a
non- zero value or 0.
Array Related Functions
The Array Related Functions may operate on scalar parameters, though
generally they are only meaningful for array values. See the Arrays
versus Scalars section (page 56) for a more general discussion of
arrays.
StartValid(array) Returns a scalar which is the index number of
the first element of the array.
EndValid(array) Returns a scalar which is the index number of
the last element of the array.
RunTot(array) Creates an array containing a running total of
the input array.
Sum(array) Returns the sum of all the elements in an
array.
Product(array) Returns the product of all the elements in an
array.
Min(array) Returns the smallest value in an array.
Max(array) Returns the largest value in an array.
IF test THEN data1 ELSE data2 Returns data1 if test is true (non-
zero) or data2 if test is false (0). If test
is an array this evaluation is done element by
element and the corresponding element in data1
or data2 is returned. Arrays and scalars can
be mixed.
Statistical Functions
Parity provides you with a number of statistical functions which you
can use in the formulas you define.
StatNorm(data, min, max) Normalizes an array to a specified range.
The smallest element in the array will be
mapped to min and the largest will be mapped
to max with all intermediate values linearly
scaled.
StatPercent(data) Computes the sum of all the elements in data
and returns an array containing data divided
by the sum. Equivalent to data / Sum(data).
StatRegress(data) Computes a best fit least squares regression
line for data. The result is an array filled
with values representing the Y values of the
regression line.
Random() Computes an array of random numbers of the
same size as the price arrays.
Time Series Functions
The following functions perform an operation, such as computing an
average, involving an element of an array and the preceding N
elements where N is determined by the parameter lengths. Since
lengths can be either a scalar or an array of the same size as data,
it is possible for undefined values to occur in the middle of an
array. For example if element 4 of array lengths is 15. This would
mean that the fourth element was a function of the preceding 15
elements. In this case the fourth element of the result, and all
preceding elements, would be undefined.
StatMovAvg(data, lengths) Determines the moving average of an
array. The ith element in the result will be
the average of the ith element and the
preceding N-1 elements, where N is the ith
element of lengths. If lengths is a scalar, N
is always equal to lengths.
StatMovMax(data, lengths) Determines the moving maximum of an
array.
StatMovMin(data, lengths) Determines the moving minimum of an
array.
StatMovTot(data, lengths) Determines the moving total of an
array.
Date Functions
Parity includes several date functions which can be used with the
predefined variables DATES and FDATES to indicate which day of the
week, month or year it is, as well as which month or year. These
functions might be used with the Profit Tester to evaluate seasonal
cycles, for example whether Mondays are typically down days or the
January effect. You must always include the DATES or FDATES variable
in the functions in place of the datevar parameter.
DayOfWeek(datevar) Returns an array indicating which day of the
week each period falls on. Monday is 1,
Tuesday is 2 and so on.
DayOfMonth(datevar) Returns an array indicating the day within the
month each period falls on. December 17, 1992
would be 17.
DayOfYear(datevar) Returns an array indicating the day within the
year each period falls on. February 3, 1992
would be 34.
MonthNumber(datevar) Returns an array indicating the month
within the year each period falls on. June
20, 1992 would be 6.
YearNumber(datevar) Returns an array indicating the number of the
year. July 4, 1992 would be 1992.
StrToDate(stringvalue) Converts a scalar string value to a date
value. Acceptable string formats are
"YYMMDD", "M/D/Y" or "D-MMM-Y", i.e. "920522"
or "5/22/92" or "22-MAY-92". The string value
must be in quotes, i.e. StrToDate("5/22/92").
The date functions might be used in a profit test, for example, if
you wanted to test the year end effect you might use formulas like:
F1: MonthNumber(Dates) = 12
F2: DayOfYear(Dates) >= 15 AND NOT F1
BuyWhen: F1
LongStop: F2
This would buy in December and sell the long position after January
15th.
If you wanted to use a specific date you would have to use the
StrToDate function. You could substitute:
F2: Dates = StrToDate("1/15/92")
for F2 above. However this would only work for one day in one year,
whereas the first expression is more general.
Pattern Recognition Functions
The recognition of complex patterns like stock charts is one of the
most difficult problems in artificial intelligence. However, Parity
does include a set of functions that recognize gross features like
local tops and bottoms. These functions help construct Profit Tests
and Scans and can also be used to create binary charts (we suggest
using the "bars" line type) or with the ChartVertLine() procedure.
The Pattern Recognition Functions use logical operators to compare
arrays of data. They return an array of 1's and 0's to indicate when
the expression is "true" or "false". For example, when Top7Bars()
detects a local high it returns a 1 otherwise it returns a 0. The
functions do not return a 1 when the feature occurred but when it was
possible to detect it. So for Top7Bars() which is looking at a
"window" of 7 days of data the peak cannot be recognized until 3 days
after it occurred.
The custom formula for each of the Pattern Recognition Functions is
shown below. You can modify these custom formulas in your own profit
tests to create more or less rigorous conditions for your feature
detection.
Bottom3Bars(d)
d > d[-1] AND d[-1] <= d[-2]
Top3Bars(d)
d < d[-1] AND d[-1] >= d[-2]
Bottom5Bars(d)
d >= d[-1] AND d[-1] > d[-2] AND d[-2] <= d[-3] AND d[-3] < d[-
4]
Top5Bars(d)
d <= d[-1] AND d[-1] < d[-2] AND d[-2] >= d[-3] AND d[-3] > d[-
4]
Bottom7Bars(d)
d >= d[-1] AND d[-1] >= d[-2] AND d[-2] > d[-3] AND d[-3] <= d[-
4] AND d[-4] <= d[-5] AND d[-5] < d[-6]
Top7Bars(d)
d <= d[-1] AND d[-1] <= d[-2] AND d[-2] < d[-3] AND d[-3] >= d[-
4] AND d[-4] >= d[-5] AND d[-5] > d[-6]
CrossAbove(d1, d2)
d1 > d2 AND d1[-1] <= d2[-1]
CrossBelow(d1, d2)
d1 < d2 AND d1[-1] >= d2[-1]
ForLoop Function
Parity's ForLoop() function is a unique and extremely powerful
function which lets you "embed" a FOR loop in any algebraic
expression or formula. The syntax for the ForLoop function is
somewhat complicated and its correct use requires some background in
computer programing. If you expect to make extensive use of the
ForLoop function you might want to purchase CA-Realizer 2.0 from
Computer Associates. CA-Realizer is an excellent development system
and BASIC derived language for Windows and OS/2. Parity uses the CA-
Realizer syntax for most of its formulas and CA-Realizer provides
complete documentation on the syntax and types of commands that can
be used in the ForLoop() function.
Syntax
The syntax for the ForLoop function is complicated and includes a
number of optional parameters and modifiers which are enclosed in
brackets. as shown below:
rv = ForLoop(asExpr, rsFromVal [,rsToVal [,rsStepVal]] [; [asInitExpr],
[rsProc?] ])
Description
The ForLoop function executes a code fragement with the following
structure:
EXECUTE asInitExpr
SELECT CASE rsProc?
CASE 0
FOR x = rsFromVal TO rsToVal STEP rsStepVal
EXECUTE "RV[x] = " + asExpr
NEXT x
CASE 1
FOR x = rsFromVal TO rsToVal STEP rsStepVal
EXECUTE asExpr
NEXT x
END SELECT
The function returns the value of RV if it exists, otherwise it
returns C*0. The EXECUTE command shown above means that the ASCII
string contained in asExpr or asInitExpr is run or executed as if it
were part of the program statement.
Parameter Description
asExpr The ASCII string expression which will be executed
in the FOR loop. This statement must be enclosed
in quotes, i.e. "RV[x-1]*0.8 + C*0.2". If the
rsProc? modifier is 0 or omitted then ForLoop will
assign the result of asExpr to the RV[x] variable
as shown for the CASE 0 above. The rsProc?
modifier must match the structure of asExpr or an
error will occur.
asExpr may contain a multiple line statement. Each
line must be separated by the "|" character which
Parity replaces with a carriage return when
ForLoop() is run. For example:
"tvar1 = StatRegress(C[x - 8: x]) | tvar2[x] =
tvar1[x]"
is the central formula for MovLinReg(C, 9,) where
tvar2 would contain the result. Note that most,
though not all multiple line statements would
require setting rsProc? to 1. Note that the asExpr
shown above would create two new global variables,
tvar1 and tvar2 which could be used in subsequent
formulas. We strongly suggest that any
intermediate variables be uniquely named to avoid
conflicting with Parity's internal variables.
rsFromVal This parameter is required and must contain the
starting point for the FOR loop. Typical values
will be 1, 2, or StartValid(array).
rsToVal This parameter is optional and would contain the
ending point for the FOR loop. In most cases
rsToVal would have to take the form of
EndValid(array) in order to avoid an error. If
rsToVal isn't provided Parity uses EndValid(C).
rsStepVal This parameter is optional and would contain the
step increment for the FOR loop. If you use
rsStepVal you must also use rsToVal. By default,
Parity uses a step value of 1.
Modifier Description
asInitExpr This ASCII string expression will be executed
BEFORE the FOR loop. This statement must be
enclosed in quotes, i.e. "RV[1] = C[1]".
asInitExpr is usually used to initialize the first
value of the RV variable when asExpr contains
something like "RV[x-1] ..." . asInitExpr is
optional.
rsProc? The optional rsProc? modifier determines whether
the body of the FOR loop contains:
EXECUTE "RV[x] = " + asExpr
when rsProc? is 0 or
EXECUTE asExpr
when rsProc? is 1. If no value for rsProc? is
supplied Parity will use 0.
Note that these optional modifiers must be seperated from the
parameters with a semicolon.
Examples
The following statements are all equivalent to MOV(C, 9, E). Note
that the first element of RV must be intialized with "RV[1]=C[1]".
ForLoop( "RV[x-1] * .8 + C[x] * .2", 2; "RV[1] = C[1]" )
ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C); "RV[1] =
C[1]" )
ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C), 1; "RV[1] =
C[1]" )
ForLoop( "RV[x-1] * .8 + C[x] * .2", 2, EndValid(C), 1; "RV[1] =
C[1]", 0 )
ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2; "RV[1] = C[1]", 1
)
ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C);
"RV[1] = C[1]", 1 )
ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C), 1;
"RV[1] = C[1]", 1 )
ForLoop( "RV[x] = RV[x-1] * .8 + C[x] * 0.2", 2, EndValid(C), 1;
"RV[1] = C[1]", 1 )
The following statement is equivalent to LinRegSlope(C, 9, %)
ForLoop("tv1=StatRegress(C[x-8:x])|rv[x]=((tv1[x]-tv1[x-1])/tv1[x-
1])*100",9;1)
The following statement is equivalent to MovLinReg(C, 9)
ForLoop("tvar1 = StatRegress(C[x - 8: x]) | RV[x] = tvar1[x]",
9;1)
Part 7 File Formats Supported
Parity directly supports 5 and 7 field MetaStock (and most CompuTrac)
data files, 7 field ChartPro/MegaTech data files, a variety of Comma
Separated Value ASCII file formats, and the TeleChart 2000 file
format. You can also import data from Excel spreadsheets (3.0 or 2.1
formats but not 4.0), Lotus 123 WKS spreadsheets (but not the WRK,
WK1 or WK3 formats), and a variety of tab and comma delimited formats
(see Import Other Formats for more details). Also Parity Plus
includes a very flexible Data Conversion utility that can convert to
and from all of the above formats.
Which format you should use to store your data will depend largely on
how you acquire, maintain, and use your data files. For example, the
MetaStock format is widely supported by most dedicated data vendors
and many software packages however it is bulky and very difficult to
use with a program that doesn't support it. The ChartPro format is
not widely supported but it is concise, quick loading and easy to
program for. The Comma Separated format can be maintained with any
text editor and most spreadsheets can import and export it without
any trouble. The TeleChart 2000 format is only supported by the
Worden Brothers but they are a convenient and inexpensive source of
historical data for stocks and mutual funds.
The MetaStock/CompuTrac Format
The MetaStock/CompuTrac format dates from the late 1970's and is
widely supported by most data vendors. Its prevalence and the fact
that it incorporates information on the name, symbol, period, and
date range are its primary advantages. However the
MetaStock/CompuTrac format also has a number of disadvantages. The
files use the antiquated Microsoft Binary Format to store numbers and
the data must be converted to IEEE floating point format. This makes
MetaStock files slower to load. You can only have 255 MetaStock data
files in a single directory. For historical reasons the MetaStock
format requires a second F*.DOP file. Although this file is only
about 65 bytes in actual size most disk drive formats can only
allocate space to a file in 4096 byte chunks. Consequently, 255 data
files take up about 1 MB of extra disk space for no reason.
Parity supports 5 and 7 field MetaStock data files. The program does
not support MetaStock composite securities which are ignored. The
MetaStock file format is a subset of the original CompuTrac file
format. Most standard 5 and 7 field CompuTrac files should work with
Parity. The 6 field CompuTrac format is not supported.
A detailed specification of the MetaStock file format is beyond the
scope of this documentation and the full specification for all the
variations of the CompuTrac format is even more complicated. Very
briefly the format requires a file called MASTER which contains the
information on the security's name and symbol etc. The actual price
data is stored in files named F*.DAT. These F*.DAT files will be
numbered from 1 to 255. The file format only permits a maximum of
255 data files in a single directory. The file format also calls for
a corresponding F*.DOP file for each F*.DAT file. Parity does not
require the F*.DOP files but other programs using this file format
may.
ChartPro File Format
The ChartPro format was created by the developer of the ChartPro and
MegaTech charting programs. Although this file format isn't widely
supported by dedicated data vendors, there are a number of shareware
and quasi commercial programs available which can create and update
these files from daily quotes downloaded from general information
services like Prodigy, GEnie, and Dow Jones News/Retrieval. The most
popular of these programs appear to be PTT, StockWatch 7.0, Pro$tock,
and PDL. The author's of all of these programs offer support on the
Money Talk BBS of the Prodigy service.
For users that are interested in developing programs to create or
maintain price data files themselves the ChartPro/MegaTech file
format is a good choice. Although the current ChartPro format
doesn't include as much information about the underlying security as
the MetaStock format it is much simpler and ChartPro files are
processed more quickly by Parity.
ChartPro format files consist of daily records that are each 26 bytes
long. The first two bytes are an integer value representing the
date. The next 24 bytes are 6 four-byte single precision IEEE
floating point fields for the open, high, low, close, volume and open
interest in that order. The first 2 records or 52 bytes are ignored
by Parity for compatibility with future versions of MegaTech. The
date numbering of ChartPro files is somewhat unusual. ChartPro
assigns a value of 1 to January 1, 1983. Add 1 for each subsequent
day including weekends and leap years. For periods prior to 1983 use
negative numbers subtracting 1 for each day of the year. In order to
be recognized by Parity, ChartPro format files must end with the .PR?
extension. Generally the first 8 letters of the file name are the
security's symbol.
Comma Separated ASCII Files
Parity directly supports a variety of different types of comma
separated or delimited ASCII text files. The advantages of this
format are that is can be imported or exported by almost every
spreadsheet and database program on the market and it is easily
maintained using any text editor. The primary disadvantage of this
format is that text files are a fairly bulky way of storing numeric
information.
Parity supports comma delimited files in the following formats:
date,close
date,close,volume
date,high,low,close
date,high,low,close,volume
date,open,high,low,close,volume
date,open,high,low,close,volume,open interest
Parity expects dates to be formatted as MM/DD/YY (leading zeros are
optional) or YYMMDD. The dates must not be enclosed in quotes. For
example 5/21/92 will be correctly imported while "5/21/92" will cause
an error. The price data must be in integer or decimal format. For
example 35 or 35.5 will work but 35 1/2 will not.
Each line of the text file represents a single date or record and
each line must end with a carriage return or carriage return and line
feed. The fields must be in the format and order shown above, and
each field is separated by a comma. Leading spaces are ignored. The
file must not contain any headers or extraneous text.
Parity automatically detects the number of fields in the file by
counting the number of commas in the first line of the file. If the
first line of the file is longer than 70 bytes or contains the
incorrect number of characters Parity will be unable to load the
file. Parity will automatically create the appropriate high, low,
and volume data arrays for files with less than 5 fields. These
arrays will be filled with zeros. Similarly, a 6 field file will
cause Parity to create an openinterest data array filled with zeros.
If Parity doesn't recognize the data in a field as a number it will
set that data element to zero.
Parity permits comma separated ASCII files to have any name or
extension. We suggest you use a standard convention when you name
your files.
Because Parity can only load 8100 data records and ASCII files have
no set record length, Parity will not load ASCII files that are
larger than 250 KB.
You can use Parity Plus' Data Conversion command to convert a number
of other ASCII formats to standard comma delimited ASCII files or any
of Parity's other supported file types.
TeleChart 2000 Files
The TeleChart 2000 file format is a quasi-proprietary format used by
the Worden Brothers data service. TeleChart 2000 is the DOS based
downloading and charting software sold by Worden Brothers, Inc.
While TeleChart 2000 is a rudimentary charting program it is quite a
good downloading program for accessing the relatively inexpensive
historical data base of stocks and mutual funds which the Worden
Brothers maintain. Price data is available for $0.005 or less per
day with a $0.69 minimum per call and 300 days per new security. The
data base includes up to 9 years of historical data on stocks and
includes opening prices for the last couple of years.
TeleChart 2000 normally maintains its data files in 26 directories,
e.g. C:\TC2000\DATA\A through C:\TC2000\DATA\Z. Data files are named
with the symbol of the stock and the NDX extension, e.g. AAPL.NDX.
Parity requires TeleChart 2000 files to have an NDX extension but
doesn't care what directory they are located in.
Starting with Version 2.1 of TeleChart 2000, the Worden Brothers
began including proprietary header information in the second record
of the data file. The first record contains the company name.
Consequently Parity begins loading data from the third record. This
proprietary header information may interfere with your ability to use
Parity Plus to maintain TeleChart 2000 files or convert other data
formats to the TeleChart 2000 format if you are using version 2.1 or
later of their software. We will not provide any technical support
for the use of the TeleChart 2000 program or data format and we
suggest you direct any questions or complaints directly to the Worden
Brothers:
Worden Brothers, Inc.
4905 Pine Cone Drive, Suites 10-12
Durham, NC 27707
(800) 776-4940
Part 9 Odds and Ends
The odds and ends section includes information on printing, some
known problems with Parity and optimizing the program for speed.
Printing Charts
There are three ways you can print a chart.
1 Use File Print to print the chart if it is the current window. A
window is current when the title bar of the window is blue. This
will print the chart as it is displayed. If the chart's window is
small then it will print a smaller chart than if the window is
large. A chart that has been maximized may not fit within the
margins of your printer. File Print provides the least control
over how the chart is printed.
2 Use the Print Tool . When you select the Print Tool from the Tool
Bar a dialog box will pop up which offers you a range of choices
as to how the charts you click on should be printed.
The Print Tool lets you specify either the number of charts Parity
will print on a page or the size of a single chart on the page.
To print a chart just click anywhere within the chart while the
Print Tool is active. If you are printing more than one chart per
page Parity won't eject the page until all the charts are printed
unless you click on the "Flush" button.
Parity also gives you the option of including or excluding the
title bar of the chart window as the header for the print out.
You would probably choose not to print the title bar as the header
if you had selected the Chart Titles at Top format from the
Options Editor.
By default, Parity will not print the background color of a chart.
If you are using a color printer and would like to include the
background color simply check the "Print Background Color" option.
3 Check the "Print Each Chart" option in the Select a Group dialog.
This prints a chart each time it is created. The chart will be
printed using the same settings as the Print Tool. You can use
this feature with the Fast Forward tool to print all the stocks in
a group.
Use File Printer Setup or the Printer Setup button on the Printer
Tool dialog to select the device to print to and adjust the
orientation of the page.
Printing Caveats
Windows prints slowly. Graphics print very slowly. Unfortunately
there is nothing we can do to improve Window's printing speeds.
However, Windows 3.1 prints much faster than Windows 3.0.
How charts print depends on the printer driver you use. The Hewlett
Packard LaserJet drivers do a very poor job of translating colors.
For example, the LaserJet prints prints certain colors of some High,
Low Close bars as a dashed rather than a solid line. For the best
results, we recommend you only use black in charts you will be
printing on a LaserJet. Postscript printers try to show colors with
shading and the results are usually less than satisfactory. The
Epson printer driver is exceptional. Printing is fast and the
printed graph is very accurate.
If you have a Laser Printer you may run into problems with inadequate
memory to print full page charts. We are unable to print charts full
page using a LaserJet II with only 512 KB. With 1.5 MB, the LaserJet
II prints fine. The standard 1 MB of memory in the LaserJet III is
right on the border. Some charts will print, others won't. This is
a limitation of the printer, not Parity.
If you are using a high resolution printer you may find that
candlestick charts print the candles too thinly. You can use the
Chart Preferences command in the Options menu to increase the
thickness of the candlesticks.
The Data Microscope
The Data Microsope tool lets you examine the price and indicator
data for any open chart. After you select the Data Microscope tool,
click on a chart and the following form will appear:
The Data Microscope displays three days of data centered around the
date where you clicked on the chart. Price data and the values for
many of the indicators that are plotted will be displayed. Parity
will draw a dashed cyan line on the chart to indicate the middle day
displayed. To show data for a different date move the slide on the
horizontal scroll bar.
You can also use the Print button on the Data Microscope to send the
chart data to the printer.
You can select the range of records you want printed as well as the
type of data.
The Data Microscope also lets you "export" the chart data to a
variety of file formats including Excel, Lotus, and Tab Separated
ASCII files.
Windows 3.0 System Resources
The following discussion of System Resources refers specifically to
Windows 3.0. Windows 3.1 usually doubles or triples the System
Resources that are available. We strongly recommend that you upgrade
to Windows 3.1.
System Resources or Program Resources refers to a 64K byte segment of
memory where Windows maintains the USER and GDI heaps which include
information on all the Windows applications that are currently
running. Regardless of the amount of memory you have installed,
Windows still includes this 64K constraint on the total System
Resources that are available to ALL the Windows applications that are
running.
Every window, icon, menu, bit map, and chart etc. consumes some
percentage of these System Resources. Selecting the Help About
command from the Program Manager will tell you what percentage of
System Resources is available at any given time. Note that running
the Program Manager or the Norton Desktop Utilities often consume as
much as 40% of total System Resources. Deleting unused icons and
program groups will free up these resources.
Because of the complexity of some of its dialog boxes Parity is also
a resource hog. With no charts displayed, but using the
Create/Modify Studies dialog, Parity consumes 30% of the System
Resources. Each chart Parity displays typically requires an
additional 1.5-2% of these System Resources.
Generally, you encounter a problem with System Resources when a large
number of charts are displayed and you then open the Create/Modify
Studies dialog box. You may also have a problem if you try to have
multiple Windows applications open at one time. Unfortunately,
Windows doesn't provide any particular error message for no more
resources. You will simply be unable to open a dialog box or create
a chart. The more you try the worse it gets since partially created
charts and dialog boxes will continue to take up more and more
memory. We suggest you save all your studies, groups, batches and
clusters and restart Parity.
On occasion, System Resources will be so low that Windows, and
therefore Parity, will start to crash. If this happens you may need
to do a CTRL-ALT-F2, which will wipe all of Parity's charts and
variables from memory. If you do this you will lose any unsaved
studies, groups and clusters and you will need to restart Parity.
System Requirements and Execution Speed
Minimum System Requirements
Parity requires Windows 3.x set in VGA or higher display mode,
running on an 80286/80386/80486 IBM compatible computer with at least
4 MB of extended memory and 1.5 MB of free disk space. Parity will
perform best on a 80486 DX or a 33 MHz 80386 DX computer equipped
with a math coprocessor and 8 MB of memory. Parity takes full
advantage of high resolution displays and 17 or 20 inch monitors.
Parity is compatible with OS/2 2.0 when it is run as a Windows
application.
Maximizing Execution Speed
While every effort has been made to optimize Parity's execution speed
there are inevitably two factors that make it (and every other
Windows application) slow compared to their DOS equivalents. The
first is the processing overhead required by Windows' multitasking
operating system. Secondly, Parity is graphically processor
intensive. This also consumes significant CPU cycles.
Finally, Parity performs calculations on large data arrays. Each
time you create a chart is equivalent to recalculating a large
spreadsheet filled with formulas.
What to do?
The first thing is that Parity is not intended to run on 80286 or 16
MHz 80386 computers. If that is your hardware configuration nothing
we suggest is likely to make Parity perform adequately. If you do
have adequate hardware and would like Parity to perform faster here
are a few suggestions in order of their importance.
1 Upgrade to Windows 3.1 if you are using Windows 3.0. Windows 3.1
runs Parity noticeably faster and provides faster printing and
greater System Resources.
2 Install a Math Coprocessor.
3 Make sure you have at least 4 MB of available memory on your
computer, i.e. memory not devoted to disk caches etc. Studies
have shown that 8 MB is the optimal memory configuration for
Windows 3.x from a speed standpoint.
4 If screen redraws are a problem buy a new graphics card with an
accelerator or coprocessor chip optimized for Windows. These
cards cost $200 to $500 and have display resolutions up to
1280x1024 pixels.
5 Upgrade your motherboard.
6 The best enhancement we ever made to our computers was to go to
17" flat screen 1024x768 non-interlaced monitors. This won't
enhance the speed of Parity at all but we guarantee you will find
a whole new pleasure in running any Windows program.
Additional Factors
The XOPointFigure() and DBarPointFigure() procedures and the SAR()
and ZIG() functions have not been optimized for speed in the 1.5
Version of Parity. They will be optimized in a future release.
Problems and Solutions
Although Parity is as bug free as possible, there are a few things
that may cause problems. In particular, Parity performs no error
checking on the formulas in a study before it attempts to chart a
study. This causes two problems if you make an error in a formula.
The Hour Glass Cursor
If a study has an invalid formula, Parity gives an error message when
it attempts to chart the study. In most cases, Parity will not have
reset the Hour Glass Cursor for the mouse. When the Hour Glass
Cursor is set, all commands and mouse clicks are disabled. To reset
the cursor hit the up arrow key on your keyboard.
Incomplete Charts and System Resources
When Parity encounters an error in a study, it has already begun
constructing a chart, but is stopped before the chart can be
displayed. It is not possible to close this chart and free up the
System Resources it consumes. Since each chart only consumes 1.5-2%
of the System Resources this isn't a problem in and of itself.
However, if you have created a large number of partial undisplayed
charts, you may find your self running out of resources. The only
solution is to exit Parity (and possibly Windows) and restart.
Remember to save any studies, groups, clusters and batches you may
have created or modified.
Incompatability with ATI Graphics Ultra Video Cards
Parity Plus 1.5 may be somewhat incompatable with the drivers
supplied with the ATI Graphics Ultra video cards. Use the older ATI
video drivers or the video drivers supplied with Windows 3.1 instead.
Other Problems
If you attempt to display a cluster created for a higher resolution
display the effects will be unpredictable. In many cases the Tool
Bar will be locked onto a new screen position. This can also happen
if you move a chart partially off the "desktop" and then use the
scroll bars to view it and the perform a Window Cascade or Tile
command. In either case you should simply recreate the tool bar
using the commands on the Options Menu.
Also, note that a maximized chart is restored to its previous size
when you open a dialog box or display another chart. If the Tool Bar
is hidden behind a maximized chart, use the Window Menu to select the
"TBar" window.
Appendix
Data Vendors
Version 1.5 of Parity does not include any utilities for collecting
price data or automatically updating data files. If you are
upgrading to Parity from another technical analysis program you
should continue to use whatever data collection and file maintenance
utilities you are comfortable with. If your price data is not in the
MetaStock/CompuTrac, ChartPro/MegaTech, comma delimited ASCII, or
TeleChart 2000 formats Parity supports please contact us. If you are
able to provide sufficient information on the file format you are
currently using we may choose to include file compatibility with your
data format in a future version of Parity.
If you do not own any utilities for collecting and updating your
price data you have several alternatives. You can manually update
your data files using the File and Data Maintenance commands. You
can manually maintain price data files in Excel, Lotus 123 WKS, comma
separated value (CSV) or tab separated value text files and use
Parity's Import Other Formats command to chart the data in these
files. However, you will not be able to include these files in a
Group and using Parity will generally be more cumbersome than if your
data is in one of the supported formats. Or you can use the Data
Conversion command to convert these files to a format Parity
supports.
A number of third party utilities exist which can create or maintain
price data files in MetaStock or ChartPro formats. One of the best
general purpose tools is the Personal Ticker Tape (PTT). PTT is a
shareware program which can convert ASCII text files into MetaStock
data files. PTT can download data automatically from CompuServe and
GEnie and can also update and maintain your data files from data
downloaded manually from on-line services like CompuServe, GEnie,
Prodigy, and Dow Jones News/Retrieval. PTT will also automatically
update data files from an ASCII file that is in the format expected
by the MSU utility provided with MetaStock. The latest version of
PTT can be downloaded from the FlexSoft BBS at (510) 829-2293.
ParTech Software Systems will also provide PTT on a diskette for a $5
shipping and handling fee. We cannot provide any support for using
PTT.
Another excellent program for downloading current prices from Prodigy
is Stock Watch 7. You can obtain more information on Stock Watch 7
by reading the various topics on the program on Prodigy's Money Talk
BB in the Investment Tools section.
Most of the Price Data Vendors listed below also offer software which
can be used to access their data service and download price data into
MetaStock data files. Each vendor's service is different and we
suggest you contact them directly for information on the capabilities
and current pricing of there products.
EQUIS International, sells The Downloader program which automatically
dials a number of different data services and downloads and formats
the data into MetaStock data files. You can call EQUIS at 1-800-882-
3040.
Recomendations
While we are loathe to take responsibility for recommending any
particular data services or software we have had personal experience
with the following data vendors and feel that one or more of them
would meet most investors needs.
Worden Brothers, Inc. is a low cost, easy to use source of historical
data on U.S. Stocks and Mutual Funds. Note that Worden Brothers'
business practices have been the subject of some negative commentary
on Prodigy. Worden Brothers is the developer of the TeleChart 2000
program.
Stock Data Corp. is a very inexpensive source of data for investors
that want to get price data for all the securities on the NYSE, AMEX,
and NASDAQ. Their data is often dirty and the software is arcane but
the price can't be beat and we have found the company to be fairly
responsive.
Commodity Systems, Inc. (CSI) is a very reliable source of data on
the Futures markets and international equities. Their QuickTrieve
downloading software badly needs an overhaul to bring it into the
1990's but it is very functional and permits you to convert their
data files to the MetaStock format.
General Information Services
CompuServe, Inc.
P.O. Box 20212
5000 Arlington Centre Blvd.
Columbus, OH 43220
(800) 848-8199
(614) 457-8650
GEnie
401 North Washington Street
Rockville, MD 20850
(800) 638-9636
Current quotes only.
Prodigy Service Company
P.O. Box 791
White Plains, NY 10601
(800) 284-5933
Current quotes only.
Dow Jones News/Retrieval
P.O. Box 300
Princeton, NJ 08543
(609) 452-1511
Price Data Vendors
Commodity Systems, Inc. (CSI)
200 W. Palmetto Park Road
Boca Raton, FL 33432
(800) 327-0715
(407) 392-8663
Commodity and stock data. Relatively expensive but comprehensive and
high quality. Includes downloading software.
Dial/Data
95 Rockwell Place
Brooklyn, NY 11217
(718) 522-6886
24 hour flat rate unlimited access pricing plans.
Stock Data Corp.
905 Bywater Road
Annapolis, MD 21401
(410) 280-5533
Only Stock Data. Weekly diskette or daily updating for the entire
stock market. Supports MetaStock and other formats.
Technical Tools
334 State Street, Suite 201
Los Altos, CA 94022
(800) 231-8005
(415) 948-6124
Commodity and stock data.
Tick Data, Inc.
720 Kipling Street, Suite 115
Lakewood, CO 80215
(800) 822-8425
(303) 232-3701
Mostly commodity data. Data Base includes tick data for every trade.
Worden Brothers, Inc.
4905 Pine Cone Drive, # 10-12
Durham, NC 27707
(800) 776-4940
Relatively inexpensive but only offer data on U.S. Stocks and Mutual
Funds.
Other Resources
An excellent source of information on technical analysis is the
magazine, Technical Analysis of Stocks & Commodities. TASC can be
difficult to find on a newsstand but you can get a sample copy by
calling 1-(800) 832-4642.
The Traders Press offers a comprehensive catalog of books on the
Stock Market and Technical Analysis. You can reach them at 1-(800)
927-8222 or at 1-(803) 298-0222.
The Market Technicians Association BBS is an excellent source of
advanced technical analysis information and discussion. Log on at 1-
(914) 478-7311. Other sources of free data include the Free
Financial Network, call 1-(212) 752-8660 to log on, and Bob
Harriman's BBS, call 1-(305) 749-8271 to log on.Other good on-line
sources for information and discussion on investing include the
INVFORUM on CompuServe and the Money Talk BB on Prodigy.